Convert decimal number to rational: Difference between revisions

→‎{{header|Sidef}}: updated code + rational approximations
m (Reverted edits by Thundergnat (talk) to last revision by Chunes)
(→‎{{header|Sidef}}: updated code + rational approximations)
Line 2,600:
 
=={{header|Sidef}}==
By default, literal numbers are represented in rational form:
This can be done by using the ''to_r'' method, which converts a scalar-object into a rational number:
<lang ruby>'0.9054054 0.518518say 0.75'.split.eachas_frac {#=> |d|3/4
say 0.518518.as_frac #=> 259259/500000
say d.num.as_rat;
say 0.9054054.as_frac #=> 4527027/5000000</lang>
 
Additionally, '''Num(str)''' can be used for parsing a decimal expansion into rational form:
<lang ruby>'0.9054054 0.518518 0.75'.split.each { |str|
say Num(str).as_frac
}</lang>
 
Another way is by calling the ''rat'' method on Number objects:
<lang ruby>say 0.9054054.as_rat;
say 0.518518.as_rat;
say 0.75.as_rat;</lang>
 
{{out}}
Line 2,616:
3/4
</pre>
 
For rational approximations, the Number '''.rat_approx''' method can be used:
<lang ruby>say 0.518518.rat_approx.as_frac #=> 14/27
say 0.9054054.rat_approx.as_frac #=> 67/74</lang>
 
=={{header|Tcl}}==
2,747

edits