presseFloat return 0-2.00 for -2.00

parseFloat return 0-2.00 for -2.00

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

谢谢

更新

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

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

当您对两个变量调用 += 时,其中一个是数字,另一个是字符串,然后两者都将转换为字符串并简单地附加。

问题是,当您获取 ID 为 A 的 HTML 元素的值时,您将获取一个字符串值。因为您正尝试将浮点数添加到字符串中,所以您的浮点数将自动转换为字符串并因此连接起来。

确保 A 始终为浮点数应该可以解决此问题。

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