1

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

谢谢

4

2 回答 2

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

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

于 2015-07-15T06:49:34.327 回答
1

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

确保A始终是浮动应该可以解决此问题。

A = parseFloat(document.getElementById('A').value);
A += parseFloat(parseFloat(A).toFixed(2));
于 2015-07-15T06:55:29.090 回答