權我有我使用從字符串刪除不需要的字符(定義爲貨幣符號)則返回值作爲一個數的函數停止parseFloat()。當返回值,我做以下電話:如何從剝離到零小數
return parseFloat(x);
我的問題是,當x ==「0.00」我期望能獲得0.00(含兩位小數的浮動)回來。我所得到的,而不是僅僅是0
我也試過如下:
return parseFloat(x).toFixed(2);
,仍然可以得到簡單的0回來。我錯過了什麼嗎?任何幫助將不勝感激。
謝謝!
權我有我使用從字符串刪除不需要的字符(定義爲貨幣符號)則返回值作爲一個數的函數停止parseFloat()。當返回值,我做以下電話:如何從剝離到零小數
return parseFloat(x);
我的問題是,當x ==「0.00」我期望能獲得0.00(含兩位小數的浮動)回來。我所得到的,而不是僅僅是0
我也試過如下:
return parseFloat(x).toFixed(2);
,仍然可以得到簡單的0回來。我錯過了什麼嗎?任何幫助將不勝感激。
謝謝!
簡單:
function decimalPlaces(float,length) {
ret = "";
str = float.toString();
array = str.split(".");
if(array.length==2) {
ret += array[0] + ".";
for(i=0;i<length;i++) {
if(i>=array[1].length) ret += '0';
else ret+= array[1][i];
}
}
else if(array.length == 1) {
ret += array[0] + ".";
for(i=0;i<length;i++) {
ret += '0'
}
}
return ret;
}
document.write(decimalPlaces(3.123,6));
這應該工作:
return parseFloat(x).toFixed(2);
您可以通過在Firebug運行這個測試:
var x = '0.00';
alert(parseFloat(x).toFixed(2));
parseFloat()把一個字符串轉換成浮點數。這是一個二進制值,而不是十進制表示,所以小數點右邊的零數的概念甚至不適用;這一切都取決於它如何格式化成字符串。關於toFixed,我建議浮點數轉換爲數字:
new Number(parseFloat(x)).toFixed(2);
沒有OP說他試過了,並沒有奏效? – 2011-02-01 22:16:15
@Ted霍普 - 無論什麼樣的OP狀態,我已經在IE 8試了一下,Safari瀏覽器,螢火蟲和Chrome JS控制檯,我給維克多+1這一點,因爲它是正確的,至少據我可以測試。 – jball 2011-02-01 22:17:55
@jball - 我同意......它應該可以工作,但事實並非如此。我希望以前有人看到過類似的行爲,並且可以讓我知道爲什麼不行。 – user599144 2011-02-01 22:23:28