在我试图为我的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));
由于
答案 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));