Expansão decimal de uma fração
1/3 sai como 0,(3) e 1/7 como 0,(142857), com o bloco que se repete entre parênteses, enquanto uma fração que termina, como 1/8, dá um 0,125 limpo. Você sempre sabe se o decimal é exato. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Numerador
- 1
- Denominador
- 8
- Valor
- 0,125
- Decimal
- 0.125
Você obtém o valor numérico direto, uma cadeia decimal exata construída por divisão longa real e, quando a expansão se repete para sempre, o bloco repetitivo claramente marcado, de modo que 1/3 retorna como 0.(3) em vez de um vago 0.3333333333333333. Um denominador igual a zero é rejeitado com um erro claro, pois a divisão por zero não é definida. Tudo funciona com aritmética determinística: sem rede, sem aleatoriedade e sem aproximação além do valor final em ponto flutuante.
Por que uma expansão decimal é mais do que uma divisão
Qualquer pessoa pode digitar uma divisão em uma calculadora e ler alguns dígitos na tela. O problema é que a calculadora decide silenciosamente quantos dígitos mostrar, e o que ela esconde costuma ser a parte que importa. Um terço não é 0.3333333333 — é 0.3 repetindo-se para sempre, e tratar a exibição truncada como o valor verdadeiro introduz um erro de arredondamento que se acumula em cada etapa posterior de um cálculo.
No momento em que um resto aparece pela segunda vez, é garantido que a expansão entra em ciclo a partir daquele ponto, e o bloco repetitivo é informado com exatidão, entre parênteses. Frações exatas como 1/8 retornam como uma cadeia finita e limpa, sem preenchimento nem dígitos finais espúrios, de modo que você sempre sabe se o decimal em mãos é exato ou uma abreviação de um infinito.
Como o algoritmo funciona
Os sinais são tratados separadamente para que a magnitude possa ser dividida com aritmética inteira simples. A parte inteira resulta de uma única divisão com arredondamento para baixo; em seguida, a parte fracionária é produzida dígito a dígito pelo clássico laço escolar — multiplicar o resto por dez, tomar o próximo dígito e guardar o novo resto.
Um mapa de cada resto para a posição em que ele apareceu pela primeira vez detecta o ciclo em tempo constante, de modo que uma fração como 1/7 devolve 0.(142857) após poucos passos, em vez de vagar para sempre. A expansão tem um limite rígido de duzentos dígitos fracionários; se o ciclo não se fechar até lá, a cadeia é marcada como truncada em vez de fingir ser exata. O valor numérico direto, calculado uma vez em ponto flutuante, é incluído para quem precisa apenas de um número.
Onde ela se encaixa em um pipeline
A conversão de fração para decimal aparece onde quer que números racionais viajem entre sistemas: plataformas educacionais que precisam exibir respostas exatas, motores de preços que armazenam custos unitários como frações e precisam de decimais para as faturas, ferramentas de medição que convertem frações imperiais em polegadas decimais e suítes de testes que verificam uma biblioteca de matemática simbólica contra uma referência confiável. Em cada caso, o perigo é o mesmo — um arredondamento invisível que sobrevive até um documento ou um banco de dados.
Nada do que você envia é armazenado: a fração é convertida e descartada, e apenas a expansão é devolvida.
Casos de uso
Exibir respostas exatas em software educacional
Mostre 1/7 como 0.(142857) com o bloco repetitivo marcado, em vez de um 0.142857 silenciosamente arredondado que marcaria como errada a resposta correta de um aluno.
Converter frações armazenadas para faturas e relatórios
Converta custos unitários racionais como 7/12 para a forma decimal sabendo exatamente onde a expansão se repete, antes de formatar o dinheiro.
Validar uma biblioteca de matemática simbólica
Compare a saída decimal da sua biblioteca com uma referência determinística de divisão longa em uma suíte de testes, fração por fração.
Perguntas frequentes
Quanto custa?
Também é grátis executar no seu navegador nesta página.
Como as dízimas periódicas são representadas?
O bloco repetitivo fica entre parênteses na cadeia decimal — 1/3 vira 0.(3) — e também é devolvido separadamente no campo repeating. Frações exatas não trazem esse campo.
Há um limite para o comprimento da expansão?
Sim: a parte fracionária tem limite de 200 dígitos. Se nenhum ciclo se fechar antes disso, a cadeia termina com reticências e o resultado é marcado como truncado, em vez de apresentado como exato.
Posso enviar os números como texto?
Sim. Cadeias numéricas como "22" e "7" são aceitas e convertidas, mas precisam ser interpretadas como números finitos, caso contrário a requisição é rejeitada.
A entrada fica armazenada em algum lugar?
Não. O numerador e o denominador são processados em memória e descartados; apenas a expansão decimal é devolvida.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/math/decimal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numerator":1,"denominator":8}'const res = await fetch("https://api.kit.forhosting.com/math/decimal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numerator": 1,
"denominator": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/decimal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numerator": 1,
"denominator": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/decimal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numerator":1,"denominator":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numerator":1,"denominator":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/decimal", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"numerator": 1,
"denominator": 8
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.decimal",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
A API de expansão decimal recebe uma fração — um numerador e um denominador — e devolve como essa fração aparece como número decimal. O mesmo código que responde à API roda gratuitamente no seu navegador nesta página, de modo que você pode verificar uma fração isolada manualmente e só pagar quando automatizar a conversão de milhares delas.
Por que uma expansão decimal é mais do que uma divisão
Este endpoint executa a divisão longa como você faria no papel, mantendo cada resto intermediário, e observa esses restos em busca de uma repetição.
Como o algoritmo funciona
A entrada é validada primeiro: ambos os campos devem ser números finitos e o denominador não pode ser zero, porque a divisão por zero não tem resultado definido e a requisição é rejeitada com um erro invalid_input em vez de um infinito enganoso.
Onde ela se encaixa em um pipeline
Passar a conversão por este endpoint fornece uma cadeia determinística e repetível que você pode comparar, armazenar e auditar, além de um sinal explícito quando a expansão verdadeira se repete. Custa US$ 0,002 por requisição pela API, sem sobretaxa por unidade, e também é grátis executá-la no seu navegador nesta página para verificações pontuais.
Perguntas técnicas
O que acontece se o denominador for zero?
A requisição é rejeitada com um erro invalid_input explicando que a divisão por zero não é definida. Requisições com denominador zero não são cobradas.