2012-05-24 4 views
2

Я выполнять ряд операций по ценам i.e. decimal numbers such as 999.99Javascript - Цены и поплавки

Проблема, я не могу найти альтернативу работе с поплавками в JavaScript. Поплавки не совсем точны и недостаточно точны для оценки.

Операции включают в себя умножения, дополнения, вычитания и деления.

Обычно языки программирования имеют десятичную библиотеку с фиксированной точкой, но не могут найти аналогичную для JavaScript.

Помощь будет замечательной!

Спасибо :)

ответ

0

JavaScript имеет только Number объект.

Вы можете использовать toFixed(x), где x - количество цифр после десятичного знака, или toPrecision(x), где x - требуемая длина.

+0

Хотя JS хранит числа как числа с плавающей запятой, целые числа до 53 бит хранятся точно. Таким образом, вы получаете максимально точное значение 9007199254740992 для наиболее распространенного использования. – HBP

4

При работе с ценами или другими финансовыми данными, которые требуют точности, всегда работайте с целыми числами, представляя количество менее значительных единиц, которые вы хотите обработать. По крайней мере, это должны быть центы (копейки или что-то еще 1/100 фракции, которые использует ваша валюта). Часто в финансовой системе используются еще меньше единиц, представляющих собой целые числа для большей точности, такие как микроны (например, $ 1,23 = 1230000 микронов). Это поможет избежать многих проблем, связанных с расчетами поплавков IEEE, и убедитесь, что ваша точность точно там, где вы хотите.

Смежные вопросы