double d = 0.1;
float f = 0.1F;
Console.WriteLine(d == f);
is false. Wich makes sense because of imprecisions.
Console.WriteLine(d*d);
prints: 0.010000000000000002
but why can't I see the imprecision before arithmetics?
String.Format("{0:0.00000000000000000000000000000000000000000000}", d)
is still precisely 0.10000000000000000000000000000000000000000000
Where is the imprecision here?
Edit after close of question: this is not the same as is floating point math broken. The answer given in the linked question is precisely the behavior the questioner was expecting. The question is why it does NOT behave as expected after the initial assignment.