0
Учитывая 3^5 (3 ** 5 или 3 * 3 * 3 * 3 * 3) = 243.Почему функция Ruby Math.log возвращает неправильные значения?
Почему/как это рубин сделать следующее:
n = 243
Math.log(n,3)
returns:
4.999999999999999
Math.log(243)/Math.log(3)
returns:
4.999999999999999
3**Math.log(n,3)
returns:
242.99999999999977
Это последнее действительно получает меня. Что-то здесь не так? Я что-то упустил? И то и другое?
Спасибо!
«Я что-то упускаю» - математика с плавающей точкой. –
Если вам нужны номера с плавающей запятой произвольной точности, вы можете использовать gt 'flt':' require 'flt/sugar'; D.math {log (3 ** 5,3)} ' Но помните, что это ухудшит производительность. – michau