раскрыть ветку (1)
Особенности некоторых языков, в частности javascript. решается такие неточности последующим округлением.
Дело в том, что в стандарте IEEE 754 на число выделяется ровно 8 байт(=64 бита), не больше и не меньше.
Число 0.1 (=1/10) короткое в десятичном формате, а в двоичной системе счисления это бесконечная дробь (перевод десятичной дроби в двоичную систему). Также бесконечной дробью является 0.2 (=2/10).
Двоичное значение бесконечных дробей хранится только до определенного знака, поэтому возникает неточность.
Когда мы складываем 0.1 и 0.2, то две неточности складываются, получаем третью.
Конечно, это не означает, что точные вычисления для таких чисел невозможны. Они возможны. И даже необходимы.
(javascript.ru)
Дело в том, что в стандарте IEEE 754 на число выделяется ровно 8 байт(=64 бита), не больше и не меньше.
Число 0.1 (=1/10) короткое в десятичном формате, а в двоичной системе счисления это бесконечная дробь (перевод десятичной дроби в двоичную систему). Также бесконечной дробью является 0.2 (=2/10).
Двоичное значение бесконечных дробей хранится только до определенного знака, поэтому возникает неточность.
Когда мы складываем 0.1 и 0.2, то две неточности складываются, получаем третью.
Конечно, это не означает, что точные вычисления для таких чисел невозможны. Они возможны. И даже необходимы.
(javascript.ru)
показать ответы
Такой стандарт расчетов флоатовых чисел.
стандарт называется IEEE 754
http://cse.iitkgp.ac.in/~goutam/pds/pdsLect/lect15.pdf
из-за неточных вычислений флоатов - все серьезные операции (например в банках), как правило, приводят в целые числа, считают, а затем снова приводят к флоатам
стандарт называется IEEE 754
http://cse.iitkgp.ac.in/~goutam/pds/pdsLect/lect15.pdf
из-за неточных вычислений флоатов - все серьезные операции (например в банках), как правило, приводят в целые числа, считают, а затем снова приводят к флоатам
раскрыть ветку (1)