HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/share/ri/3.0.0/system/Rational/cdesc-Rational.ri
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"HA rational number can be represented as a pair of integer numbers: ;TI"Ca/b (b>0), where a is the numerator and b is the denominator. ;TI"2Integer a equals rational a/1 mathematically.;To:RDoc::Markup::BlankLineo;;[I"HIn Ruby, you can create rational objects with the Kernel#Rational, ;TI"Dto_r, or rationalize methods or by suffixing +r+ to a literal. ;TI"5The return values will be irreducible fractions.;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"IYou can also create rational objects 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"*programs without any rounding errors.;T@o;
;[I"K10.times.inject(0) {|t| t + 0.1 }              #=> 0.9999999999999999
;TI">10.times.inject(0) {|t| t + Rational('0.1') }  #=> (1/1)
;T;0o;;[I"PHowever, when an expression includes an inexact component (numerical value ;TI"6or operation), it 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;TI"&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;T@R[I"	ceil;T@^[I"denominator;T@^[I"	fdiv;T@^[I"
floor;T@^[I"	hash;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;TI"*ext/bigdecimal/lib/bigdecimal/util.rb;T[I"	to_f;T@^[I"	to_i;T@^[I"to_json;T@R[I"	to_r;T@^[I"	to_s;T@^[I"
truncate;T@^[;[[;[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@
@@F@FcRDoc::TopLevel