Thank you for taking time to elaborate on the subject. This is both informative and enjoyable to read! We knew that all real numbers cannot be represented using IEEE-754. It wasn’t all clear though because toString() appears to be perfectly transitive for double 5.1 yet “sum” is non-associative.
I guess it would be more accurate to say that arithmetic is wrong at some probability value. I just feel that in this instance it is appropriate to call “wrong” what is not 100% right :)