2014-10-04 216 views
0

當我嘗試使用JavaScript轉換分數時,我遇到了一個問題。 我需要將百分比值作爲百分比值。 a = 0.0175 它應該顯示爲1.75%。我試圖乘以100.但我得到了一些額外的分數加到右邊 - 1.7500000000000002。我只需要1.75,而不是再添加到最後的零。JavaScript分數百分比

在此先感謝。

+0

使用'toFixed()'指定小數位數。 – Barmar 2014-10-04 00:16:37

回答

1

試試這個

var a = 0.0175 
var num = a * 100; 
var n = num.toFixed(2) 
+0

是否可以不指定長度?有時如果值爲0.03425,則應該顯示爲3.425。我不想限制分數位置的數量,甚至不用零填充它。 – Dig 2014-10-04 00:56:46

+0

如果你不想要小數位數然後直接倍數兩位小數,但一定要將它們轉換成小數,這是因爲JavaScript把每一個字符串都對待一個字符串 – 2014-10-04 01:11:27

0

乘法,圓形和除法:

// rounding to set precision or default precision = 3 
function roundToPrecision (value, precision) { 
    precision = (typeof precision !== 'undefined') ? precision : 3; 
    var mult = Math.pow(10, precision); 

    return Math.round(mult * value)/mult; 
} 

用法:

var zzz = roundToPrecision(123.1231232546); // 123.123 

var aaa = roundToPrecision(123.1231232546, 1); // 123.1 
+0

這麼簡單的結果 – njzk2 2014-10-04 00:32:16

+0

需要一個通用舍入函數 – 2014-10-04 00:34:09

+0

除'toFixed()'返回字符串 – 2014-10-04 00:39:59

0

試試這個:

function formatNum(n) { 
    return Math.round(a * 1e4)/1e2; 
} 

var a = 0.0175; 
var n = formatNum(a); // 1.75 

var b = 0.21; 
var m = formatNum(b); // 21 

它簡單地乘以100 * 100,將結果舍入並再次除以100.結果因此仍然是一個數字而不是字符串,這與toFixed -approach一樣。

+0

您還可以添加解釋嗎? – Robert 2015-06-04 11:07:52