Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Глюки с умножением! (https://javascript.ru/forum/misc/38155-glyuki-s-umnozheniem.html)

misteralexander 21.05.2013 17:32

Глюки с умножением!
 
Буду очень признателен за совет.
Ситуация меня просто вводит в транс!
При умножении получаю какие то бредовые значений.

Умножаю
8.61 * 60.000

и неизменно получаю
516.5999999999999

var cena4= 8.61 * 60.000;
document.write(cena4);

Я просто в шоке. Специализируюсь на php. Решил немного использовать JavaScript. В чем проблема? Я так понимаю глюки из-за точки в цифрах. Как решить?

nerv_ 21.05.2013 17:37

Цитата:

Сообщение от misteralexander
Как решить?

http://javascript.ru/Number/toFixed

misteralexander 21.05.2013 17:47

Спасибо, метод работает. Но есть информация - в чем причина глюка, ведь речь идет об элементарнейшей и базовой операции??

oneguy 21.05.2013 17:54

Числа хранятся в памяти в формате с плавающей точкой в двоичной системе исчисления. Число 8.61 невозможно представить точно в виде двоичной дроби с конечным количеством знаков после запятой. Отсюда и погрешность в вычислениях.

nerv_ 21.05.2013 17:57

http://ru.wikipedia.org/wiki/IEEE_754-2008

рони 21.05.2013 18:00

misteralexander,
ЧаВО - часто задаваемые вопросы (faq)
...
8. Почему 0.2+0.1 == 0.30000000000000004

edison 21.05.2013 21:46

Цитата:

Я просто в шоке. Специализируюсь на php.
В php тоже такие казусы, с плавающей точкой , есть , странно, что вы в шоке)))) Вот так вот, залезли в другой яп и узнали про тот в котором специализируетесь ))) А причины уже выше написали, они и для пхп такие же )


Часовой пояс GMT +3, время: 00:21.