2013-11-25 93 views
3

的浮動如何能正確的用零填充最大數量的限制,使得如何在Javascript零墊浮點數字和對數字

  1. 的填充後的位數是7個
  2. 零填充到.
  3. 數字與多於7位被從右側

.toFixed(6)截斷小數點右邊忽略的數字之前的數小數點.

輸入

9.123 
9.123456 
6.12345678 
100.1 

輸出

9.123000 
9.123450 
6.123456 
100.1000 // truncated from the right 
+0

你可以調整你傳遞給'.toFixed'數由小數點前的位數決定。 –

+0

看起來不難 - 你嘗試過嗎? – jantimon

+0

如果100,000,000? – leaf

回答

2
n.toFixed(5).substring(0, 7) 

它就會失敗對於任何100000更大。

1

這是我巧言令色:

Number.prototype.toTotallyFixed = function(n) { 
    var s = this.toString(), a = (s + (s.indexOf('.') != -1 ? '' : '.0')).split('.'); 
    return a[0].length > n ? s.slice(0,n) : a[0] + (+('.'+a[1])).toFixed(n - (a[0].length-1)).slice(1); 
} 

FIDDLE

1

注意,結果是一個字符串:

var n = 9.123 + ''; 
if (n.length < 8) { 
    n += new Array(9 - n.length).join('0'); 
} else if (n.length > 8) { 
    n = n.slice(0, 8); 
}