【问题标题】:Matching float and string value in javascript not matchedjavascript中匹配的浮点数和字符串值不匹配
【发布时间】:2015-10-30 21:17:57
【问题描述】:

我正在使用此代码

if(total == balance)
{
alert("test ok");
}
else
{
alert("test failed");
}

这里是total=10;balance=10.00;,但结果是“测试失败”。

【问题讨论】:

  • balance==10.00 - 我确定不是。可以是10.000000000001"10.00"
  • 在assign的时候需要做吗????
  • 我们需要查看您的变量分配。
  • 在这里工作得很好,这就是你的变量jsfiddle.net/35p5oLmr的确切定义
  • @georg: "10.00" 应该没问题,假设total 是一个数字。

标签: javascript html floating-point integer


【解决方案1】:

嗯...我可能不完全正确,但我认为总数被视为整数,余额被视为小数。试试=== 函数而不是== 函数。

=== 函数转换这些值,然后检查它们。 因此,根据值是 0 还是 1 检查值是 true 还是 false 需要 === 运算符将两者转换为相同类型的值。

== 函数只是检查两个值是否相等,只需查看它的当前值。没有转换。因此,如果我想检查两个int 值的值,我将使用==

有两种方法可以解决这个问题。

一种方法是通过将总计更改为小数,将其赋值为 10.00 并带有小数,或者将余额更改为整数,将其赋值为 10,不带小数位。

另一个更好,您只需将== 替换为===。所以你的代码看起来像这样:

if (total === balance) {
    window.alert("test ok");
} else {
    window.alert("test failed");
}

【讨论】:

  • 我在这里使用一个函数调用,它有 getValue1()、getValue2() 和 new_value = getValue1(); old_value = getValue2();总计 = 新值 + 旧值;这里任何类型转换问题都是可能的。
  • 然后尝试 float.parse()-ing 所有值,也许?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 2018-01-12
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多