下面,我有一個數字,我試圖使用JavaScript格式。但它返回NaN。使用JavaScript或ExtJS四捨五入格式化的字符串編號
var v = "153,452.47";
alert(Math.round(v));
您可以使用下面小提琴:Example
我們如何可以格式化爲分隔符的數值列?
下面,我有一個數字,我試圖使用JavaScript格式。但它返回NaN。使用JavaScript或ExtJS四捨五入格式化的字符串編號
var v = "153,452.47";
alert(Math.round(v));
您可以使用下面小提琴:Example
我們如何可以格式化爲分隔符的數值列?
我認爲,如果你想圓整數
var v = "153,452.47";
float.toFixed(0);
// => 153452
讓我們做一個可愛的小功能,這將很好地工作
var v = "153,452.47";
var float = parseFloat(v.replace(/[^0-9.]/g, ''));
// => 153452.47
!
var roundFormattedNumber = function(n){
var result = parseFloat(n.replace(/[^0-9.]/g, ''));
return isNaN(result) ? NaN : result.toFixed(0);
};
這個工程很好地多提供比其他解決方案,因爲它是一個白名單正則表達式替換,而不是黑名單之一。這意味着,它甚至會換號工作就像$ 1,234.56
提供不會爲這些數字
roundFormattedNumber("$ 123,456,489.00");
//=> 123456789
roundFormattedNumber("999.99 USD");
//=> 1000
roundFormattedNumber("1 000 €");
//=> 1000
roundFormattedNumber("i like bears");
//=> NaN
謝謝。這太棒了:) – SharpCoder
「這比其他解決方案提供的更好。」這取決於;如果你想在垃圾數據上快速失敗,你應該拋出一個錯誤,以便知道應用程序的失敗。接受字符串中可能有逗號與除數字之外的任何字符串不同。這些例子都沒有檢查NaN(當字符串中沒有數字時,你的函數會返回),但是在進一步處理數據之前這樣做是明智的。 +1爲一個很好的完整答案 – HMR
@HMR,我已經添加了明確的NaN返回。感謝您的反饋。 – naomik
嘗試這個
var v = "153,452.47";
Math.round(parseFloat(v.replace(",","")));
第一刪除逗號...... – elclanrs
@elclanrs:我知道這就是一種選擇,而是我不想去說辦法。謝謝你的幫助:) – SharpCoder