parseFloat返回0-2.00表示-2.00

时间:2015-07-15 06:31:07

标签: javascript asp.net parsefloat

在我试图为我的aspx页面实现的JavaScript中,parsefloat(“ - 2.00”)返回值0-2.00

显然有一些我错过了,因为parsefloat可以处理负数,但是,这里它显示我在调试中的这个值,输出结果为0.

请帮我看看我可能做错了什么。

我在javascript中使用的代码

var A=0;
A = document.getElementById('A').value;
A += (parseFloat(A).toFixed(2));
document.getElementById("C").value = roundToTwo(parseFloat(A) + parseFloat(B));

由于

2 个答案:

答案 0 :(得分:2)

<强>更新

请参阅.toFixed()的文档 - 它返回该数字的字符串表示。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

您需要做的是拆分添加两个数字并调用toFixed。喜欢这个

 var A=0; //A is of type number
 A = document.getElementById('A').value; //A is of type string
 A += parseFloat(A); //A is of type number again
 A = A.toFixed(2); //A is of type string again

当你在两个变量上调用+=时,其中一个是数字而另一个是字符串,那么两个变量都将被转换成字符串并简单地附加。

答案 1 :(得分:1)

问题在于,当您获得ID为A的HTML元素的值时,您将获得一个String值。因为您正在尝试向字符串添加浮点数,所以您的标记将自动转换为字符串,从而连接起来。

确保A始终是浮点数应解决此问题。

A = parseFloat(document.getElementById('A').value);
A += parseFloat(parseFloat(A).toFixed(2));