PDA

Просмотр полной версии : trace(0.09 - 0.1) - это какой то баг?


voy22
13.11.2007, 19:51
Собственно говоря стандартный калькулятор в винде решает уравнение следующим образом: 0.09 - 0.1 = -0.01
Флеш плеер же добавляет какуют кашу.
Кто нибудь, что нибудь слышал об этом?

BlooDHounD
13.11.2007, 20:01
всё верно у меня посчитал. с небольшой погрешностью.

DarkLight
13.11.2007, 20:05
Ошибка округления, это нормально. Используйте toFixed для красивого отображения результата.

aQuestion
13.11.2007, 20:35
"стандартный калькулятор в винде" скорее всего работает в BCD (http://en.wikipedia.org/wiki/Binary-coded_decimal), а флеш - с floating point.

kotsie
14.11.2007, 08:00
в дополнение к предыдущему: float хранится в памяти приближённо с довольно большой точностью, но всё же приближённо. потому любое сравнение a == b лучше не делать флоатами. если интересует какая-то определённая точность, то можно округлять довольно смело.