Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.09.2013, 06:44
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

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

А какая команда в js помогла бы мне округлять числа до нужного знака, но если нули, то их не выводить. Я понимаю что js считает с туповатой погрешностью, но хотелось бы что бы если число целое, то путь таким и будет, без лишних нулей.
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2013, 06:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

var number = 20.493;
number = Math.round(number * 100) / 100;
alert(number);
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 17.09.2013, 06:56
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

danik.js,
Вот оно как, всё решилось... кхм... видел я такое решение, но думал что это костыль, однако вам я склонен верить))) А неужели нет готовых решений? Нужно обязательно число умноженное на 100, делить на 100?
Ответить с цитированием
  #4 (permalink)  
Старый 17.09.2013, 07:31
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Гробовщик, хрен знает если честно. toPrecision принимает аргументом число знаков вообще, а не только после запятой и результатом дает строку, а не число.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 17.09.2013, 15:20
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

без jQuery тут не обойтись!
Ответить с цитированием
  #6 (permalink)  
Старый 18.09.2013, 17:45
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти наибольшее число и ввести его на экран? Ivan152 Оффтопик 2 20.05.2012 20:13
Округлить целое число glebovsky Общие вопросы Javascript 5 12.02.2012 17:38
Не получается округлить число (после деления - длинные числа) Randomizer jQuery 5 20.10.2011 22:44
Разбить число на миссив, как ? Bogdan808 Общие вопросы Javascript 20 01.09.2010 18:19
Как округлить число в меньшую сторону с заданной точностью? barcelona Общие вопросы Javascript 2 19.08.2009 12:07