Javascript浮点数比较
我试着做我认为很直截了当的事情,但结果很奇怪。我在一个页面上有两个字段:Javascript浮点数比较,javascript,floating-point,comparison,Javascript,Floating Point,Comparison,我试着做我认为很直截了当的事情,但结果很奇怪。我在一个页面上有两个字段:transactionmount和transactionLimit。单击按钮时,它会调用一个javascript函数,以确保金额不超过限制: var transactionAmount = parseFloat(document.getElementById("amount").value).toFixed(2); var transactionLimit = parseFloat(document.getElementBy
transactionmount
和transactionLimit
。单击按钮时,它会调用一个javascript函数,以确保金额不超过限制:
var transactionAmount = parseFloat(document.getElementById("amount").value).toFixed(2);
var transactionLimit = parseFloat(document.getElementById("limit").value).toFixed(2);
if (transactionAmount > transactionLimit) {
alert("Over limit");
}
如果我将TransactionMount设置为$2.00,将交易限额设置为$100.00,则会收到超限警报。如果我将TransactionMount设置为$1.00,那么它可以正常工作。基本上,如果限制为$100.00,则任何小于$1.00的值都有效,但如果超过$1.00,则会产生错误
如果您能有所了解,我将不胜感激!谢谢大家! 发生的主要问题是因为
toFixed(2)
它将结果转换为string
,这就是为什么您的条件没有按预期工作。只需使用前面的+
字符将其包装,使其成为字符串中的数字
var transactionmount=+(parseFloat('2.00').toFixed(2));
var transactionLimit=+(parseFloat('100.00')。toFixed(2));
日志(TransactionMount、transactionLimit、typeof TransactionMount、typeof transactionLimit)
如果(TransactionMount>TransactionMount){
控制台日志(“超限”);
}
由于toFixed(2)
而发生的主要问题将结果转换为字符串
,这就是为什么您的条件没有按预期工作的原因。只需使用前面的+
字符将其包装,使其成为字符串中的数字
var transactionmount=+(parseFloat('2.00').toFixed(2));
var transactionLimit=+(parseFloat('100.00')。toFixed(2));
日志(TransactionMount、transactionLimit、typeof TransactionMount、typeof transactionLimit)
如果(TransactionMount>TransactionMount){
控制台日志(“超限”);
}
尝试将函数“Number()”添加到值中,toFixed()实际上将它们转换为字符串。也可以在执行相同操作之前添加“+”
例如:
var transactionAmount = Number(parseFloat("150.00").toFixed(2)); //or: +parseFloat("150.00").toFixed(2)
var transactionLimit = Number(parseFloat("100.0").toFixed(2)); //or: +parseFloat("100.0").toFixed(2)
if (transactionAmount > transactionLimit)
{
alert("Over limit");
} else {
alert("you ok dude");
}
输出:
"Over limit"
我希望它能帮助你 尝试将函数“Number()”添加到值中,toFixed()实际上将它们转换为字符串。也可以在执行相同操作之前添加“+”
例如:
var transactionAmount = Number(parseFloat("150.00").toFixed(2)); //or: +parseFloat("150.00").toFixed(2)
var transactionLimit = Number(parseFloat("100.0").toFixed(2)); //or: +parseFloat("100.0").toFixed(2)
if (transactionAmount > transactionLimit)
{
alert("Over limit");
} else {
alert("you ok dude");
}
输出:
"Over limit"
我希望它能帮助你 你在比较Strings你在比较Strings谢谢-我很感激!!谢谢-我很感激!!