Логин:

Пароль:

Форумы
Общие вопросы
Document Object Model
Обсуждаем конференцию
Web Usability (test)

Общие вопросы

Обрезка лишних знаков после запятой

>>> Порскольку мне нужно, чтобы при любом раскладе было ДВА знака после запятой (нулей, или чего еще - неважно), я написал такую вот функцию, и через нее форматирую. Работает. Лучшего и более оптимального пути тоже не знаю.
>>
>> а чем тебя parseInt не устраивает ?
>>
>> function formateNumber(num) {
>> return parseInt(num)+".00";
>> }
>>
>> или я не так понял ?
>
> Дело в том, что parseInt() преобразовывает числа с плавающей запятой в целые числа. У меня же задача, для числа любого формата (вида, длины), например:
> 156.5600000000097
> 156.1
> 156.191
> 156
>
> вывести результат с двумя знаками после точки, а если их нет, то с нулями, а если знак один (второй сверху пример) то добавить ноль. Т.е. отформатировать вывод.
>
> Для вышеуказнынных чисел моя функция выведет:
> 156.56
> 156.10
> 156.19
> 156.00

вот только что столкнулся с подобной проблемой...
написал вот такую функцию:

function formatNumber(n,zn){
.if(typeof(zn)=="undefined") return n;
.n = parseFloat(n);
.zn= parseInt(zn);
.p = Math.pow(10, zn);
.s = new String(Math.round(n*p)/p);
.if(ind=s.indexOf(".") > -1){
..zn -= s.length-ind-1;
.}else{
..s += ".";
.}
.for(var i=0; i<zn; i++) s += "0";
.return s;
}

не знаю, может можно более элегантно написать подобную функцию...
если придумаете, то постите ;)
СообщениеАвторДата
Mishka09.07.2001 23:14
Leechy10.07.2001 23:52
Gilmour11.07.2001 00:09
Leechy11.07.2001 00:18
Leechy11.07.2001 00:00
Konstantin A. M.10.07.2001 11:02
Mishka10.07.2001 18:02
Wolf10.08.2006 11:57
Gilmour10.07.2001 19:44
Mishka10.07.2001 22:43
Алексей29.08.2010 17:44
ERge03.02.2003 13:52
ERge03.02.2003 15:11
test24.03.2002 17:22
Danil Antonov24.03.2002 17:21
Gilmour10.07.2001 23:21
Gilmour11.07.2001 00:03
Gilmour11.07.2001 05:31
Mishka11.07.2001 18:11
Gilmour11.07.2001 23:23
Konstantin A. M.11.07.2001 00:47
Gilmour11.07.2001 01:12
Konstantin A. M.11.07.2001 01:18