Decimal To Fraction In Ruby
Join the DZone community and get the full member experience.
Join For Free// Adds a 'to_fraction' method to Float. Eg. 0.5.to_fraction => [1,2]
class Float
def number_decimal_places
self.to_s.length-2
end
def to_fraction
higher = 10**self.number_decimal_places
lower = self*higher
gcden = greatest_common_divisor(higher, lower)
return (lower/gcden).round, (higher/gcden).round
end
private
def greatest_common_divisor(a, b)
while a%b != 0
a,b = b.round,(a%b).round
end
return b
end
end
Opinions expressed by DZone contributors are their own.
Comments