Мой вопрос не о плавающей точности. Речь идет о том, почему Equals()
отличается от ==
.
Я понимаю, почему .1f + .2f == .3f
есть false
(while .1m + .2m == .3m
is true
).
Я получаю, что ==
является ссылкой и .Equals()
является сопоставлением значений. (Edit: Я знаю, что для этого есть еще больше.)
Но почему (.1f + .2f).Equals(.3f)
true
, а (.1d+.2d).Equals(.3d)
все еще false
?
.1f + .2f == .3f; // false
(.1f + .2f).Equals(.3f); // true
(.1d + .2d).Equals(.3d); // false