Необходимо ограничить десятичными до 20 - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть сценарий, в котором я конвертирую число в строку предпочтений пользователя

conv = num.toLocaleString('de-DE', { maximumFractionDigits: 20 })

Поскольку у меня есть реальные длинные числа, я хочу ограничить до 20 десятичных знаков. Но приведенный выше код не дает мне желаемого результата.

Может кто-нибудь подсказать, как этого добиться?

Спасибо, Nupur

1 Ответ

0 голосов
/ 13 ноября 2018

Проблема заключается в том, как числа с плавающей запятой хранятся в процессоре.См. Арифметика с плавающей точкой и Формат с плавающей запятой двойной точности .

Вы не можете иметь 20 значащих десятичных разрядов в числе.Они будут усечены в конце

См. Пример:
num = 0.0000000000000000123456; будет отображаться как "0,00000000000000001235", а
num = 1.0000000000000000123456; будет отображаться как "1,00000000000000000000"

Если выВы хотите использовать ровно 20 дробных цифр, используйте этот объект опций:

{minimumFractionDigits: 20, maximumFractionDigits: 20}

...