Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Странное преобразование чисел (https://javascript.ru/forum/misc/9025-strannoe-preobrazovanie-chisel.html)

Даниэль Ноубл 25.04.2010 18:15

Странное преобразование чисел
 
Кто нибудь может объяснить почему данный скрипт возвращает 5.220000000000001

var a = '3.22';
alert(parseFloat(a) + 2)


Вместо 5.22

Octane 25.04.2010 18:55

Цитата:

Сообщение от http://ru.wikipedia.org/wiki/ECMAScript
Числовой тип данных в ECMAScript соответствует 64-битному формату чисел с плавающей запятой, определённому стандартом IEEE 754-2008…

IEEE 754 — стандарт двоичной арифметики с плавающей точкой

Даниэль Ноубл 25.04.2010 19:01

Спасибо конечно за статью Octane, но есть ли готовое решение для javascript???:help:

Octane 25.04.2010 19:04

Используйте toFixed или toPrecision для отображения результатов вычислений.
А статью прочитайте, не ленитесь, там не сложно, а знать нужно ;)

Даниэль Ноубл 25.04.2010 19:07

Я прочитал статью:) Довольно таки интересная! не когда раньше не встречался с подобными ошибками

Octane 25.04.2010 19:13

За 10 минут прочитали!? :blink:

Даниэль Ноубл 25.04.2010 19:14

Но все таки toFixed или toPrecision не сильно подходит пишу калькулятор думаю для пользователя будет не удобно если я буду производить округление по своему усмотрению

Даниэль Ноубл 25.04.2010 19:15

Прочитал поверхностно:)

Octane 25.04.2010 19:45

alert((322 + 200) / 100)

Gvozd 25.04.2010 19:54

попробуйте длинную арифметику, если вы хотите сделать такой "точный" калькулятор


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