perl58 -le "$eps = 1; while( 10 < 10 + $eps ){ $eps /= 2 ; } print $eps," 8.88178419700125e-016 #### perl58 -le "$eps = 1; while( 100 < 100 + $eps ){ $eps /= 2 }print $eps" 7.105427357601e-015 #### perl58 -le "$eps = 1; while( 0.1 < 0.1 + $eps ){ $eps /= 2 } print $eps" 6.93889390390723e-018 #### perl58 -e "for(-15..16) { $eps=1; while( qq[1E$_] < qq[1E$_] + $eps ) { $eps /= 2; } printf '%20.20f : %32.32f' . $/, qq[1E$_], $eps }" 0.00000000000000100000 : 0.00000000000000000000000000000010 0.00000000000001000000 : 0.00000000000000000000000000000039 0.00000000000010000000 : 0.00000000000000000000000000000631 0.00000000000100000000 : 0.00000000000000000000000000005049 0.00000000001000000000 : 0.00000000000000000000000000040390 0.00000000010000000000 : 0.00000000000000000000000000323117 0.00000000100000000000 : 0.00000000000000000000000005169879 0.00000001000000000000 : 0.00000000000000000000000082718061 0.00000010000000000000 : 0.00000000000000000000000661744490 0.00000100000000000000 : 0.00000000000000000000005293955920 0.00001000000000000000 : 0.00000000000000000000042351647363 0.00010000000000000000 : 0.00000000000000000000338813178902 0.00100000000000000000 : 0.00000000000000000010842021724855 0.01000000000000000000 : 0.00000000000000000043368086899420 0.10000000000000001000 : 0.00000000000000000693889390390723 1.00000000000000000000 : 0.00000000000000011102230246251565 10.00000000000000000000 : 0.00000000000000088817841970012523 100.00000000000000000000 : 0.00000000000000710542735760100190 1000.00000000000000000000 : 0.00000000000005684341886080801500 10000.00000000000000000000 : 0.00000000000090949470177292824000 100000.00000000000000000000 : 0.00000000000727595761418342590000 1000000.00000000000000000000 : 0.00000000005820766091346740700000 10000000.00000000000000000000 : 0.00000000093132257461547852000000 100000000.00000000000000000000 : 0.00000000745058059692382810000000 1000000000.00000000000000000000 : 0.00000005960464477539062500000000 10000000000.00000000000000000000 : 0.00000095367431640625000000000000 100000000000.00000000000000000000 : 0.00000762939453125000000000000000 1000000000000.00000000000000000000 : 0.00006103515625000000000000000000 10000000000000.00000000000000000000 : 0.00097656250000000000000000000000 100000000000000.00000000000000000000 : 0.00781250000000000000000000000000 1000000000000000.00000000000000000000 : 0.06250000000000000000000000000000 10000000000000000.00000000000000000000 : 1.00000000000000000000000000000000 #### perl58 -le"printf '%32.32f', 0.9" 0.90000000000000002000000000000000