November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy wykonać obliczenia z dużą dokładnością, wykraczającą poza możliwości arytmetyki obiektów typu Float.
Za pomocą obiektów typu BigDecimal możemy reprezentować liczby rzeczywiste z dowolną dokładnością.
require 'bigdecimal'
BigDecimal("10").to_s # => "0.1E2"
BigDecimal("1000").to_s # => "0.1E4"
BigDecimal("1000").to_s("F") # => "1000.0"
BigDecimal("0.123456789").to_s # => "0.123456789E0"
Porównajmy to z dokładnością dostarczaną przez typ Float:
nm = "0.123456789012345678901234567890123456789" nm.to_f # => 0.123456789012346 BigDecimal(nm).to_s # => "0.123456789012345678901234567890123456789E0"
Obiekty BigDecimal przechowują wartości zgodnie z tzw. ...