(ответ Флинна является правильным ответом. Этот вопрос решает проблему в более общем плане.)
Похоже, вы предполагаете, OP, что неточность с плавающей точкой в вашем коде является детерминированной и предсказуемо неправильной (в некотором смысле, ваш подход является противоположностью подхода людей, которые этого не делают понять с плавающей точкой еще).
Хотя (как указывает Бен) неточность с плавающей точкой является детерминированной, с точки зрения вашего кода, если вы не очень продуманны в отношении того, что происходит с вашими значениями на каждом этапе, это не будет дела. Любой ряд факторов может привести к 0.1 + 0.2 == 0.3
успешному выполнению, оптимизация во время компиляции будет одним, а измененные значения для этих литералов - другим.
Здесь не полагайтесь ни ни на успех, ни на неудачу; не полагайтесь на равенство с плавающей точкой в любом случае .