Я уже заметил, что простое умножение в 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
Почему это возможно? Это если условие сбой или ошибка умножения?