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谢谢-我很感激!!谢谢-我很感激!!