U:RDoc::NormalClass[iI" Rational:ET@I" Numeric;To:RDoc::Markup::Document: @parts[o;;[: @fileI"*ext/bigdecimal/lib/bigdecimal/util.rb;T:0@omit_headings_from_table_of_contents_below0o;;[; I"&ext/json/lib/json/add/rational.rb;T; 0o;;[o:RDoc::Markup::Paragraph;[I"FA rational number can be represented as a paired integer number; ;TI"Ga/b (b>0). Where a is numerator and b is denominator. Integer a ;TI"(equals rational a/1 mathematically.;To:RDoc::Markup::BlankLineo; ;[I"BIn ruby, you can create rational object with Rational, to_r, ;TI"\rationalize method or suffixing r to a literal. The return values will be irreducible.;T@o:RDoc::Markup::Verbatim;[ I" Rational(1) #=> (1/1) ;TI" Rational(2, 3) #=> (2/3) ;TI"!Rational(4, -6) #=> (-2/3) ;TI" 3.to_r #=> (3/1) ;TI" 2/3r #=> (2/3) ;T: @format0o; ;[I"HYou can also create rational object from floating-point numbers or ;TI" strings.;T@o; ;[ I"?Rational(0.3) #=> (5404319552844595/18014398509481984) ;TI"!Rational('0.3') #=> (3/10) ;TI" Rational('2/3') #=> (2/3) ;TI" ;TI"?0.3.to_r #=> (5404319552844595/18014398509481984) ;TI"!'0.3'.to_r #=> (3/10) ;TI" '2/3'.to_r #=> (2/3) ;TI"!0.3.rationalize #=> (3/10) ;T;0o; ;[I"DA rational object is an exact number, which helps you to write ;TI")program without any rounding errors.;T@o; ;[I"J10.times.inject(0){|t,| t + 0.1} #=> 0.9999999999999999 ;TI"=10.times.inject(0){|t,| t + Rational('0.1')} #=> (1/1) ;T;0o; ;[I"HHowever, when an expression has inexact factor (numerical value or ;TI"0operation), will produce an inexact result.;T@o; ;[ I"#Rational(10) / 3 #=> (10/3) ;TI"/Rational(10) / 3.0 #=> 3.3333333333333335 ;TI" ;TI"$Rational(-8) ** Rational(1, 3) ;TI"D #=> (1.0000000000000002+1.7320508075688772i);T;0; I"rational.c;T; 0; 0; 0[[[[[I" class;T[[: public[[I"json_create;FI"&ext/json/lib/json/add/rational.rb;T[:protected[[: private[[I" instance;T[[;["[I"*;TI"rational.c;T[I"**;T@][I"+;T@][I"-;T@][I"-@;T@][I"/;T@][I"<=>;T@][I"==;T@][I"abs;T@][I" as_json;F@Q[I" ceil;T@][I"denominator;T@][I" fdiv;T@][I" floor;T@][I" inspect;T@][I"magnitude;T@][I"negative?;T@][I"numerator;T@][I"positive?;T@][I"quo;T@][I"rationalize;T@][I" round;T@][I" to_d;FI"*ext/bigdecimal/lib/bigdecimal/util.rb;T[I" to_f;T@][I" to_i;T@][I" to_json;F@Q[I" to_r;T@][I" to_s;T@][I" truncate;T@][;[[;[[[U:RDoc::Context::Section[i0o;;[; 0; 0[@ @@E@EcRDoc::TopLevel