2016-07-04 4 views
0

lodash для меня вызывает неожиданное поведение. Где я указываю округление до 2 знаков после запятой, иногда дает мне один. Это lodash v3.20.1 и Chrome v51. Например, 5.599999 будет округлен до 5.6 вместо 5.59.lodash округление до 1 десятичного знака вместо 2

var num = 5.58888 
console.log('lodash num .round is ' + _.round((num), 2)); // 5.59 as expected 

var num2 = 5.59999; 
console.log('lodash num2 .round is ' + _.round((num2), 2)); // 5.6 not expected, why? 

Это ошибка или я что-то не так?

+2

'5.59' не' 5.59999' округляется до двух знаков после запятой. Это действительно '5.6'. Вам все еще нужно '5.60'? Затем используйте 'toFixed'. – Xufox

ответ

3

Как @Xufox объяснил:

5,59 округления до 2 знаков после запятой 5,60

Но число с замыкающими нулями не добавляет точности, нет никакой необходимости, чтобы показать это, это автоматически удален. Если вам нужно его принудительно, вы можете использовать метод toFixed(), который форматирует число с использованием нотации с фиксированной точкой.

_.round((num2), 2).toFixed(2)) //lodash num2 .round is 5.60 

Примите во внимание, что он возвращает строковое представление результата _.round ((num2), 2)

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