File: //usr/share/ri/3.0.0/system/Float/next_float-i.ri
U:RDoc::AnyMethod[iI"next_float:ETI"Float#next_float;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I":Returns the next representable floating point number.;To:RDoc::Markup::BlankLine o;
; [I"MFloat::MAX.next_float and Float::INFINITY.next_float is Float::INFINITY.;T@o;
; [I")Float::NAN.next_float is Float::NAN.;T@o;
; [I"For example:;T@o:RDoc::Markup::Verbatim; [,I"10.01.next_float #=> 0.010000000000000002
;TI"/1.0.next_float #=> 1.0000000000000002
;TI"/100.0.next_float #=> 100.00000000000001
;TI"
;TI":0.01.next_float - 0.01 #=> 1.734723475976807e-18
;TI":1.0.next_float - 1.0 #=> 2.220446049250313e-16
;TI";100.0.next_float - 100.0 #=> 1.4210854715202004e-14
;TI"
;TI"Mf = 0.01; 20.times { printf "%-20a %s\n", f, f.to_s; f = f.next_float }
;TI"##=> 0x1.47ae147ae147bp-7 0.01
;TI"3# 0x1.47ae147ae147cp-7 0.010000000000000002
;TI"3# 0x1.47ae147ae147dp-7 0.010000000000000004
;TI"3# 0x1.47ae147ae147ep-7 0.010000000000000005
;TI"3# 0x1.47ae147ae147fp-7 0.010000000000000007
;TI"3# 0x1.47ae147ae148p-7 0.010000000000000009
;TI"2# 0x1.47ae147ae1481p-7 0.01000000000000001
;TI"3# 0x1.47ae147ae1482p-7 0.010000000000000012
;TI"3# 0x1.47ae147ae1483p-7 0.010000000000000014
;TI"3# 0x1.47ae147ae1484p-7 0.010000000000000016
;TI"3# 0x1.47ae147ae1485p-7 0.010000000000000018
;TI"2# 0x1.47ae147ae1486p-7 0.01000000000000002
;TI"3# 0x1.47ae147ae1487p-7 0.010000000000000021
;TI"3# 0x1.47ae147ae1488p-7 0.010000000000000023
;TI"3# 0x1.47ae147ae1489p-7 0.010000000000000024
;TI"3# 0x1.47ae147ae148ap-7 0.010000000000000026
;TI"3# 0x1.47ae147ae148bp-7 0.010000000000000028
;TI"2# 0x1.47ae147ae148cp-7 0.01000000000000003
;TI"3# 0x1.47ae147ae148dp-7 0.010000000000000031
;TI"3# 0x1.47ae147ae148ep-7 0.010000000000000033
;TI"
;TI"
f = 0.0
;TI"100.times { f += 0.1 }
;TI"af #=> 9.99999999999998 # should be 10.0 in the ideal world.
;TI"X10-f #=> 1.9539925233402755e-14 # the floating point error.
;TI"^10.0.next_float-10 #=> 1.7763568394002505e-15 # 1 ulp (unit in the last place).
;TI"S(10-f)/(10.0.next_float-10) #=> 11.0 # the error is 11 ulp.
;TI"Z(10-f)/(10*Float::EPSILON) #=> 8.8 # approximation of the above.
;TI"0"%a" % 10 #=> "0x1.4p+3"
;TI"h"%a" % f #=> "0x1.3fffffffffff5p+3" # the last hex digit is 5. 16 - 5 = 11 ulp.;T:@format0:
@fileI"numeric.c;T:0@omit_headings_from_table_of_contents_below0I"!float.next_float -> float
;T0[ I"();T@AFI"
Float;TcRDoc::NormalClass00