Я написал калькулятор на JS. Итоговое число (сумма) может быть целым, а может и иметь несколько знаков после запятой. Иногда бывает что это количество знаков слишком большое (например: 35896.950000000004).
Мне нужно проверить есть ли у числа знаки после запятой, если да то проверить их количество, если больше двух то обрезать до двух.
Помогите пожалуйста реализовать такую вещь. Спасибо!
Спустя 24 минуты, 50 секунд (24.03.2010 - 11:04) Oyeme написал(а):
var num = 10;
var result = num.toFixed(2); // result will equal 10.00
num = 930.9805;
result = num.toFixed(3); // result will equal 930.981
Спустя 5 минут, 7 секунд (24.03.2010 - 11:09) web-dev написал(а):
Первый вариант приведёт 10 к 10.00, а мне это не надо. Мне нужно округление до сотых только в том случае если чисел после запятой больше двух.
Спустя 2 минуты, 35 секунд (24.03.2010 - 11:11) sergeiss написал(а):
Цитата (web-dev @ 24.03.2010 - 11:39) |
Помогите пожалуйста реализовать такую вещь. Спасибо! |
Вот что меня удивляет... Я прочитал вопрос, понял, что ответ не знаю. Но вопрос меня заинтересова. Я зашел в Яндекс, набрал запрос "округление чисел в javascript". И в первой же ссылке нашел ответ.
Интересно, а автору темы сложно было самому так сделать?
Спустя 6 минут, 4 секунды (24.03.2010 - 11:18) sergeiss написал(а):
Цитата (web-dev @ 24.03.2010 - 12:09) |
Мне нужно округление до сотых только в том случае если чисел после запятой больше двух. |
Найди остаток от деления по модулю на 0.01. Если больше нуля - тогда округляй, иначе не трогай.
Типа такого:
var s=238470.114;
if( s*100 % 1 > 0 ) alert( s );
Спустя 3 минуты, 50 секунд (24.03.2010 - 11:21) web-dev написал(а):
я видел эту ссылку

Цитата |
Найди остаток от деления по модулю на 0.01. Если больше нуля - тогда округляй, иначе не трогай. |
Вот! Именно это и было нужно! sergeiss, спасибо большое!!!
Спустя 1 час, 8 минут, 44 секунды (24.03.2010 - 12:30) andyp написал(а):
я использую свой компактный способ, и не надо вовсе никаких if.
Простая математика.
Пример.
Первой выведет 101.14
Второе 10
Простая математика.
Пример.
var x = 101.135679;
var y = 10;
alert(Math.round(x*100)/100);
alert(Math.round(y*100)/100);
Первой выведет 101.14
Второе 10
Спустя 47 минут, 9 секунд (24.03.2010 - 13:17) sergeiss написал(а):
andyp - тут же вопрос был больше не в том, как вывести, а как ОЦЕНИТЬ то, с какой точностью уже имеется число.
Спустя 49 минут, 15 секунд (24.03.2010 - 14:06) andyp написал(а):
Ну я понял так, что нужно после проверки вывести потом, и поэтому конечная цель на самом деле вывести.
Цитата |
Мне нужно проверить есть ли у числа знаки после запятой, если да то проверить их количество, если больше двух то обрезать до двух. |

_____________
IT - это такая область, что приходится постоянно бежать вперед, чтобы оставаться на месте.