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