Округление Math.round
Решаю задачи с codeacademy, остановился на
http://www.codecademy.com/courses/ja...6#!/exercise/2 Требуется округлить результат сложения десятичных чисел Такое вот решение не проходит: var first = 0.1; var second = 0.2; var sum = Math.round( first + second ); Помогите решить задачку) |
Цитата:
Чему таки должно равняться 0.1+0.2? |
Должно ровнятся 0.3
А следующий код: var first = 0.1; var second = 0.2; var sum = ( first + second ); alert ( sum ); Выдает 0.30000000000000004 |
var first = 0.1; var second = 0.2; var sum = ( first + second).toPrecision(1); alert ( sum ); |
А авторы сайта предлагают (и считают правильным) такой вариант:
var first = 0.1; var second = 0.2; var sum; sum=Math.round((first+second)*100)/100; Как-то странновато,мягко говоря. |
Цитата:
|
А есть у этого метода отличия (плюсы/минусы) от .toPrecision()?
|
GuardCat, "метод" как метод... Хочешь пользуйся, а хочешь нет... :)
Вот почитай про toPrecision() http://javascript.ru/Number/toPrecision Он округляет... А в примере просто умножение и деление... Т.е. это вообще разные результаты в общем случае... |
Часовой пояс GMT +3, время: 11:23. |