权我有我使用从字符串删除不需要的字符(定义为货币符号)则返回值作为一个数的函数停止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