[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос про округление числа
web-dev
Здравствуйте.
Я написал калькулятор на 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 написал(а):
я видел эту ссылку smile.gif

Цитата
Найди остаток от деления по модулю на 0.01. Если больше нуля - тогда округляй, иначе не трогай.


Вот! Именно это и было нужно! sergeiss, спасибо большое!!!

Спустя 1 час, 8 минут, 44 секунды (24.03.2010 - 12:30) andyp написал(а):
я использую свой компактный способ, и не надо вовсе никаких if.
Простая математика.
Пример.

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 написал(а):
Ну я понял так, что нужно после проверки вывести потом, и поэтому конечная цель на самом деле вывести.

Цитата
Мне нужно проверить есть ли у числа знаки после запятой, если да то проверить их количество, если больше двух то обрезать до двух.


smile.gif


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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.