Я хочу округлить число до двух десятичных знаков в javascript. Я нашел много сообщений о том, что поведение SO .toFixed
непредсказуемо для разных браузеров.Круглые до двух знаков после запятой, javascript
И нашел это решение во многих местах, которые принимаются без исключения
Math.round(yournumber * 100)/100
Но я нашел правильный, но некоторые неправильные результаты тоже из этого расчета, как
Math.round(1.27532423 * 100)/100 = 1.28 // this seems correct
Math.round(1.275 * 100)/100 = 1.27 // as I understand it should also 1.28
Math.round(1.276 * 100)/100 = 1.28
Могу ли я что-то отсутствует или мое понимание неверно?
Редактировать
Просто обнаружил, что
1.275 * 100
возвращается 127.49999999999999
и что является причиной, если она возвращает 127.5
, он даст правильный результат.
Но почему это возвращает это 127.49999999999999
????
@ scott.korin - Человек !! Я думаю, ты это сделал. (Пожалуйста, проверьте мою часть редактирования) '1.275 * 10 * 10' возвращает правильный результат' 127.5', в то время как '1.275 * 100' не вернул правильный результат. Большое спасибо!! –