В Ruby (1.9) числа всегда считаются точными?Я знаю, что Ruby делает довольно сложные вещи с числами под капотом, так как вы можете делать сумасшедшие вещи, такие как просить 1 триллион с мощностью 1 триллион, и вы получите ответ (после ожидания многих лун для его вычисления).
В схеме часть спецификации указывает, что реализации должны указывать, является ли внутреннее представление числа реализацией "точным" или нет.Например, 1/2 всегда точное, 1/3 точное, 0.3333 точное и т. Д. И т. Д. Но результат неточной математической операции с точным числом может привести к получению числа, которое реализация Схемы знает как неточное (из-за плавающего числаточная точность).
(exact? (/ 0.33333 2))
=> #f
Это неверно, поэтому это не точно.
Есть ли способ вывести ту же информацию в Ruby?Если я всегда буду использовать Complex
(или Rational
) представление числа во время математических операций, будет ли оно всегда быть точным в Ruby или просто очень близко к точному?
Complex("0.33333") / 2
Это точно или нет?