2016-04-04 33 views
0

我有一個問題。腳本解析CSV到HTML。但是數字被讀爲一個字符串。如何將「0」加到不需要小數的數字上。例如:如何添加一些數字字符串在JavaScript或jQuery

15,45 
12,00 
14,2 
14,54 

我要像4,2

15,45 
12,00 
14,20 
14,54 
+0

'12,00'是'12.00'不同你有什麼期望是什麼呢? –

+0

可能重複[如何使用JavaScript創建Zerofilled值?](http://stackoverflow.com/questions/1267283/how-can-i-create-a-zerofilled-value-using-javascript) – Farside

回答

2

加0的所有號碼嘗試

var output = "15,2".split(",").map(function(val){ return val > 100 ? val: (val+"00").slice(0,2);}).join(","); 
 
alert(output); 
 
var output = "15,100".split(",").map(function(val){ return val > 99 ? val: (val+"00").slice(0,2);}).join(","); 
 
alert(output); 
 
var output = "15,".split(",").map(function(val){ return val > 100 ? val: (val+"00").slice(0,2);}).join(","); 
 
alert(output);

+0

它doesn '不適用於整數(例如'15') – fcalderan

+0

@fcalderan對於'15,15'它輸出了我'15,15'在這種情況下應該輸出什麼? – gurvinder372

+0

試用'15',應該輸出'15.00' – fcalderan

2

vanillaJS

var num = "14,2"; 

/* string to number conversion */ 
num = +(num.replace(',','.')); 

/* set 2 digits after decimal point */ 
num = num.toFixed(2); 

/* 
Input Output 
-------------- 
14,25 14.25 
14,2 14.20 
14  14.00 */ 

降低單個語句,如在下面的意見建議:

(+num.replace(',','.')).toFixed(2); 

,如果你有一個字符串數組,你可以使用Array.map()

var nums = ["14", "14,2", "14,25"]; 
nums = nums.map(n => (+n.replace(',','.')).toFixed(2)); 

// => ["14.00", "14.20", "14.25"] 
+0

這是最正確和最高性能的答案。也許與單行玩家競爭並像這樣寫:'(+ num.replace(',','。'))。toFixed(2);'? – A1rPun

+0

是的,但爲了清晰起見,我將代碼拆分爲兩條可讀(和註釋)的代碼行,我沒有參加codegolf競賽:) – fcalderan

1

如果你輕鬆地將它們轉換所有字符串作爲發佈格式在OP中可以使用長度:

["15,45","12,00","14,2"].forEach(function(v){ 
 
    alert(v.split(',')[1].length==1?v+"0":v); 
 
})

0

您可以使用此:

var arr = ["15,45","12,00","14,2","14,54"]; 
 

 
var newarr = arr.map(function(o){ 
 
    var val = o.split(','); 
 
    return val[1].length == 1 ? val.join(',')+"0" : val.join(','); 
 
}); 
 

 
document.querySelector('pre').innerHTML = JSON.stringify(newarr, 0, 4);
<pre></pre>

相關問題