2016-11-14 3 views
0

В моем приложении мне нужно обрабатывать некоторые поля валют, которые имеют до 21 числа цифр. И значения должны быть рассчитаны для дальнейших действий.Есть ли альтернативы parseFloat? Что позволяет обрабатывать номера до 21 цифры?

Я использовал parseFloat в вычислениях, когда максимальная цифра равна < 15. Теперь, поскольку требование составляет 21 цифру, parseFloat не поддерживается должным образом. Он поддерживает до 17 цифр правильно. Но после 17-й цифры он округляет стоимость.

Tried in Console window

Так есть ли какая-либо альтернатива parseFloat? или какие-либо другие методы, с помощью которых я могу справиться с этой проблемой?

фона Применение:

  • C# Применение
  • AngularJS, Javascript участвует
  • базы данных: SQL
+1

Что это связано с C#? –

ответ

0

Нет, JS может обрабатывать только числа 16 чисел, до максимума 9,007,199,254,740,991 (aka Number.MAX_SAFE_INTEGER). Это ограничение языка.

Вы можете хранить их в виде строк, если вам просто нужно отображать значения, но как только вы выполняете на них числовую операцию, JS преобразует их в тип Number с максимальной точностью.

Если вам нужна более высокая точность, я бы предложил вам выполнить расчет на сервере и вернуть результат в виде строки в ваш JS-код.