Number.prototype.toLocaleString ('en-US') убирает десятитысячный знак после запятой? - PullRequest
0 голосов
/ 07 мая 2018

В Chrome, если вы преобразуете число в строку локали, оно отсекает десятичные разряды после тысячного десятичного разряда:

(10.001).toLocaleString('en-US'); // => '10.001'
(10.0001).toLocaleString('en-US'); // => '10'

Основной вопрос: Как мне защититься от этого?

Тангенциальные вопросы:

  1. Это ошибка?
  2. Есть ли причина, по которой я должен позволить ему отрубить десятичное место?

1 Ответ

0 голосов
/ 07 мая 2018

Нет, это не ошибка. По умолчанию toLocaleString включает в себя максимум 3 дробных цифры. Вы можете включить больше, указав аргумент параметров с большим значением maximumFractionDigits:

(10.0001).toLocaleString('en-US', {maximumFractionDigits:20}); // => '10.0001'

От MDN :

minimumFractionDigits

Минимальное количество цифр дроби для использования. Возможные значения от 0 до 20; по умолчанию для простого числа и процента форматирования - 0.

maximumFractionDigits

Максимальное количество цифр дроби для использования. Возможные значения от 0 до 20; по умолчанию для обычного числового форматирования больше minimumFractionDigits и 3.

...