parseFloat()用数字以0开头

时间:2013-02-22 08:35:29

标签: jquery replace parsefloat

我感兴趣的是为什么parseFloat()在这种情况下返回0:

var priceFromJson = '0,33';
console.log(priceFromJson);
            var tmpPrice = parseFloat(priceFromJson);
            console.log('tmpPrice'+tmpPrice);
            var price = parseFloat( ( tmpPrice ) * 1.2 ).toFixed(2);
            console.log('price'+price);

结果是:

0,33 
tmpPrice0 
price0.00 

但如果我这样做:

var priceFromJson = '0,33';
console.log(priceFromJson);
            var tmpPrice = parseFloat( priceFromJson.replace(',','.') );
            console.log('tmpPrice'+tmpPrice);
            var price = parseFloat( ( tmpPrice ) * 1.2 ).toFixed(2);
            console.log('price'+price);

结果是:

0,33 
tmpPrice0.33 
price0.40 

http://www.w3schools.com/jsref/jsref_parsefloat.asp,但在我的情况下,第一个字符为零。

有什么想法吗?

编辑(评论后):

所以其他小数,例如。 “5,36”,“10,44”在没有替换()的情况下工作正常。任何其他想法,在这些情况下我该怎么办?什么是消除这个问题然后实践它的最佳方法。感谢

1 个答案:

答案 0 :(得分:2)

因为本地化。

预期小数点分隔符为.,而不是,

由于.适用于所有情况,我建议始终转换数字(使用替换代码)。如果你对数据表示进行规范化,这并没有什么坏处。