Обрезка лишних знаков после запятой>>> Порскольку мне нужно, чтобы при любом раскладе было ДВА знака после запятой (нулей, или чего еще - неважно), я написал такую вот функцию, и через нее форматирую. Работает. Лучшего и более оптимального пути тоже не знаю. >> >> а чем тебя 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; }
не знаю, может можно более элегантно написать подобную функцию... если придумаете, то постите ;) |