我已经注意到javascript中的简单乘法有时会产生错误的结果。不正确,我不是说浮动值问题(2.999999而不是3),而是绝对错误的结果,即2.6581而不是44.919283。
我试图用短代码重现这种情况,但是我没有设法做到这一点。我只在整个程序中注意到这些错误。
例如,我有以下几行:
console.log('myHighestBuy = ' + myHighestBuy);
console.log('theirLowestSell = ' + theirLowestSell);
if ((theirLowestSell * 0.85) < myHighestBuy){
console.log('If condition is true');
offerDeal(name, theirLowestSell, MarketPrice, myHighestBuy)
} else {
console.log('Not calling offerDeal()');
}
我注意到,尽管实际上它不必必须调用
offerDeal()
函数。正确的案例控制台日志:
myHighestBuy = 16.22
theirLowestSell = 27.78
Not calling offerDeal()
但是一旦我在控制台中有了这个:
myHighestBuy = 16.22
theirLowestSell = 27.78
If condition is true
为什么可能呢?是条件失败还是乘法错误?
最佳答案
您缺少一些关键知识,但是无法确定问题中给出的信息。
我的幻想告诉我,您可能无意中使用了一个以局部变量为单位的全局变量;这是JavaScript中的常见危害。我的建议是发现是否正确
"use strict";
作为文件的第一行。