2013-11-11 3 views
-1

Я хотел бы форматировать десятичные значения в определенном формате, как 1.23 следует указывать как 0001.23 с помощью javascript. есть ли какие-либо конкретные функции, такие как toPrecision(), tofixed() в javascript для обработки такого вида форматирования или любых указателей для решения любых решений? здесь десятизначный десятичный динамический. Например: У меня есть 2 значения: первое значение: 99.4545 второе значение: 100.32 в этом втором значении имеет более высокую длину (3) до десятичного и первое значение имеет более высокую длину после десятичной (4). так вычитают результат (0,8655) это должно быть в формате ###. #### (000,8685)формат десятичный в javascript

спасибо

+0

Дубликат: http://stackoverflow.com/questions/10073699/pad-a-number-with-leading-zeros-in-javascript –

+0

Сделайте себе одолжение, использовать библиотеку, есть довольно несколько, например https://npmjs.org/package/python-format, http://www.diveintojavascript.com/projects/javascript-sprintf – georg

ответ

-2

Попробуйте использовать строку, как "000" + некоторое значение

+0

Это всегда будет добавлять три «0» на фронт, вероятно, он хочет 5 цифр перед десятичной точностью. например 100.45 должно быть 0100.45 – samuraiseoul

+0

Он может попытаться связать строки с цифрами, где ур воображение, гуру программирования? – user2898056

+0

И если вы знаете, может быть, какое-то исчисление 0001.23 не является математическим утверждением – user2898056

0

если вы хотите LPAD некоторых 0 на 1.23 вы можете сделать следующий

var value = 1.23 

value = ("0000000"+ value).slice(-7); 

Измените -7 быть все, что вы хотите, общую длину строки, включая десятичную точку, чтобы быть.

Добавлен после вопроса редактирования

выше должны обрабатывать свой вопрос скомпонованный, но и для остальной частью этого вам нужно что-то вроде этого.

var formatNum = function (num, preLen, postLen) { 
    var value = num.split("."), 
    padstring = "0"; 
    padLen = (preLen > postLen)?preLen:postLen; 

    for (i = 0; i < padLen; i++) { 
    padstring += padstring; 
    } 
    if (typeof(value[1]) === "undefined") { 
    value[1] = "0"; 
    } 

    return ((padstring + value[0]).slice(-preLen)+ "." + (value[1] + padstring).substring(0,postLen)); 
} 

Это занимает номер, который вы хотите отформатирован и длину вы хотите каждую строку быть на любой стороне «». Он также обрабатывает случай целого числа.

Если вы хотите выводить любые другие случаи, такие как возвращающая целое число, вы должны добавить, что в.

0

Просто сделать функцию, которая делает то, что вы хотите. Вот пример, который вы можете расширить, если хотите.

function pad(num, padSize){ 
    var numString = "" + num.split('.')[0]; 
    if(num.length < padSize){ 
    var numZeroes = padSize-num.length; 
    var zeroes = ""; 
    while(numZeroes){zeroes += "0"; numZeroes--;} 
    return zeroes + num; 
    }else return num; 
} 
Смежные вопросы