Что происходит ?! Вычитание работает нормально, пока я не доберусь до 0,1 - 0,1. Я в Visual C # 2008 с использованием API nonoba.com.
Console.WriteLine("hit! " + Users[targetNum].character.health + " : " + player.character.profile.attackPower);
Users[targetNum].character.health -= player.character.profile.attackPower;
Console.WriteLine("health! " + Users[targetNum].character.health);
выход:
hit! 0.1 : 0.1
health! 1.490116E-08
Спасибо всем - я мог бы использовать десятичный тип, так как я обычно добавляю / вычитаю красивые круглые числа. А пока я просто пойду с:
if (Users[targetNum].character.health <= 0.00001)
Между прочим, я знал, что это на самом деле не будет "ошибкой" в c # - я думал, что это будет либо из-за ошибки в моем коде, либо из-за нехватки понимания.
Прочитав все рекомендуемое чтение, я собираюсь заключить, что моя глупость была вызвана тем, что я обычно использовал тип числа ActionScript, который может иметь десятичную, а не двоичную плавающую точку - в любом случае, он никогда не выдаст такой вывод. 1012 *