Melhor resposta
Divida, usando divisão longa.
½ = 1 ÷ 2
1 ÷ 2 = 0 com resto de 1, então a casa de um é 0.
Anexe um 0 ao resto e repita a divisão:
10 ÷ 2 = 5 com sem resto, então o décimo lugar é 5.
Se continuarmos, continuaremos adicionando 0s no final; então terminamos.
Mais concisamente:
\ tfrac12 = 1 ÷ 2
1 ÷ 2 = \ mathbf {0} R1: 0
10 ÷ 2 = \ mathbf {5} R0: 0,5
Portanto, \ tfrac12 = 0,5.
Vamos tentar com \ tfrac18:
\ tfrac18 = 1 ÷ 8
1 ÷ 8 = \ mathbf {0} R1: 0
10 ÷ 8 = \ mathbf {1} R2: 0,1
20 ÷ 8 = \ mathbf {2} R4: 0,12
40 ÷ 8 = \ mathbf {5} R0: 0,125
Então \ tfrac18 = 0,125
Vamos tentar com \ tfrac13:
\ tfrac13 = 1 ÷ 3
1 ÷ 3 = \ mathbf {0} R1: 0
10 ÷ 3 = \ mathbf {3} R1: 0,3
Se continuarmos, continuaremos adicionando mais 3s:
10 ÷ 3 = \ mathbf {3 } R1: 0,33
10 ÷ 3 = \ mathbf {3} R1: 0,333
Então, em vez de fazer isso, vamos apenas desenhar uma linha sobre o 3 para indicar que repete-se indefinidamente:
\ tfrac13 = 0. \ overline3
De modo mais geral, sempre que você obtém um resto do anterior, o padrão se repete daquele ponto anterior.
Vamos tentar com \ frac16:
\ frac16 = 1 ÷ 6
1 ÷ 6 = \ mathbf {0} R1: 0
10 ÷ 6 = \ mathbf {1} R4: 0,1
40 ÷ 6 = \ mathbf {6} R4: 0,16
\ frac16 = 0,1 \ overline6
Vamos tentar com \ tfrac17:
\ tfrac17 = 1 ÷ 7
1 ÷ 7 = \ mathbf {0} R1: 0
10 ÷ 7 = \ mathbf {1} R3: 0,1
30 ÷ 7 = \ mathbf {4} R2: 0,14
20 ÷ 7 = \ mathbf {2} R6: 0,142
60 ÷ 7 = \ mathbf {8} R4: 0,1428
40 ÷ 7 = \ mathbf {5} R5: 0,14285
50 ÷ 7 = \ mathbf {7} R1: 0,142857
\ tfrac17 = 0. \ Overline {142857}
Resposta
É uma questão interessante, com uma algoritmo não trivial.
A maioria das calculadoras usa frações contínuas. Você itera a função x | -> 1 / (x-int (x)), mantendo o controle de int (x) o tempo todo.
Digamos que você precise converter 1.3529411764705883 em uma fração. Seu int é 1, o resto invertido é 1 / .3529411764705883 = 2.8333333333333326. Seu int é 2, o resto invertido é 1 / .8333333333333326 = 1.200000000000001. Seu int é 1, o resto invertido é 4,9999999999999975. Seu int é 4, o resto invertido é 1 / .999999999999975 = 1.000000000000025. Seu int é 1, o resto invertido é 40000000000000,0. Seu int é 40000000000000, o resto é 0, portanto não pode ser invertido (ou você cortou uma etapa antes, observando que 40000000000000 é muito grande).
De qualquer forma, agora você tem seus ints: 1,2,1, 4,1,40000000000000. Depois, basta inverter o processo: inverter o último arredondando para 0, adicionar o penúltimo (1), inverter (1), adicionar o anterior (4), obtendo 5, inverter (1/5), adicionar 1 obtendo 6/5, invertendo obtendo 5/6, adicionando 2 obtendo 17/6, invertendo obtendo 6/17, adicionando 1 obtendo 23/17. Essa é a solução.