'Compare two fractions (no floating-point)

Using integers ONLY (no floating-point), is there a way to determine between two fractions, which result is greater?

for example say we have these two fraction: 1000/51 = 19(.60) && 1000/52 = 19(.23)

If we were to use floating point numbers obviously the first fraction is greater; however, both fractions equal 19 if we were to use integers only. How might one find out which is greater with out using floating point math?

I have tried to get the remainder using the % operator but does not seem to work in all cases.



Solution 1:[1]

1/2 can be think one apple give two people, so every people take 0.5 apple. so 1000/51 consider as 1000 apples give 51 people.

1000/51 > 1000/52, because the apple the same,but we wanna give it to more people.

it is simple example, more complex exmaple:

1213/109 1245/115 which is greater?

1245 is greater than 1213 and 115 is greater than 109, difference:

1245 - 1213 = 32, and 115 - 109 = 6, 32/6 replce 1245/109, compare 1213/109 to 32/6.

32/6 ? 5 and less 6, 6*109 = 654 < 1213, so 1213/109 > 1245/115.

1213/109  1245/115
1213/109  32/6  # make diff  1245 - 1213 = 32     115 - 109 = 6
# compare diff to 1213/109
1213 > 109 * 6 
# then
1213/109 > 1245/115

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 JackChouMine