"Floating-point numbers are like a band-aid covering a mortal wound." Comparison of IEEE double-precision floating-point and interval arithmetic. Note how interval arithmetic always gives strict (guaranteed) lower..upper bounds on the correct value, whereas floating-point merely gives some shot-in-the-dark which might be any arbitrary distance from the correct answer with no guarantee as to how close or far it might perchance be. Double-precision floating point Interval arithmetic 2d0 2 (take square root) 1.4142135623730951d0 1.414213562373095[0..1] (take square root) 1.189207115002721d0 1.189207115002721[0..1] (take square root) 1.0905077326652577d0 1.090507732665257[6..7] (take square root) 1.0442737824274138d0 1.044273782427413[8..9] (2^4th power: 1.9999999999999973d0 2.00000000000000[-13..+18]) (take square root) 1.0218971486541166d0 1.021897148654116[6..8] (take square root) 1.0108892860517005d0 1.010889286051700[4..6] (take square root) 1.0054299011128027d0 1.005429901112802[7..9] (take square root) 1.0027112750502025d0 1.002711275050202[4..6] (2^8th power: 2.0000000000000187d0 2.0000000000000[-44..+59]) (take square root) 1.0013547198921082d0 1.001354719892108[1..3] (take square root) 1.0006771306930664d0 1.000677130693066[3..5] (take square root) 1.0003385080526823d0 1.000338508052682[2..4] (take square root) 1.0001692397053021d0 1.000169239705302[1..3] (2^12th power = 1.9999999999992353d0 2.000000000000[-11..+06]) (take square root) 1.0000846162726942d0 1.000084616272694[2..4] (take square root) 1.0000423072413958d0 1.000042307241395[7..9] (take square root) 1.0000211533969647d0 1.000021153396964[7..9] (take square root) 1.0000105766425498d0 1.000010576642549[6..8] (2^16th power = 2.000000000007247d0 2.0000000000[-16..+11])