Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   округлить число (https://javascript.ru/forum/library-toolkit-framework/41510-okruglit-chislo.html)

Гробовщик 17.09.2013 06:44

округлить число
 
Пытаюсь округлить число до 2-х знаков после запятой, но если после запятой один знак или число целое то нули не должны отображаться пробовал такие способы:
toFixed(2)-оставляет нули после запятой. ожидание-185, реальность-185.00
Math.round(2) не оставляет ничего. ожидание-20.49 реальность-20
toPrecision(2) вообще не так как надо работает. ожидание 5.25 реальность-5.2

А какая команда в js помогла бы мне округлять числа до нужного знака, но если нули, то их не выводить. Я понимаю что js считает с туповатой погрешностью, но хотелось бы что бы если число целое, то путь таким и будет, без лишних нулей.

danik.js 17.09.2013 06:50

var number = 20.493;
number = Math.round(number * 100) / 100;
alert(number);

Гробовщик 17.09.2013 06:56

danik.js,
Вот оно как, всё решилось... кхм... видел я такое решение, но думал что это костыль, однако вам я склонен верить))) А неужели нет готовых решений? Нужно обязательно число умноженное на 100, делить на 100?

danik.js 17.09.2013 07:31

Гробовщик, хрен знает если честно. toPrecision принимает аргументом число знаков вообще, а не только после запятой и результатом дает строку, а не число.

keen 17.09.2013 15:20

без jQuery тут не обойтись!

oneguy 18.09.2013 17:45

Можно сделать так:
var number = 185;
number = +number.toFixed(2); // или Number(number.toFixed(2))
alert(number);

Дело в том, что toFixed возвращает строку, также как и toPrecision и toExponential, а строки "185.00" и "185" преобразуются в то же число.


Часовой пояс GMT +3, время: 19:48.