Calcule o preço com desconto, o valor final e a economia
Um item de 120 com 25 % de desconto sai por 90: economia de 30. Informe um desconto ou uma lista ordenada deles e veja o preço final, cada percentual aplicado e a economia total, arredondados ao centavo. 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
- Preço original
- 120
- Percentual de desconto
- 25
- Descontos
- 25
- Preço final
- 90
- Total economizado
- 30
Calcule quanto você realmente pagará depois de aplicar um percentual de desconto ou uma sequência de reduções. Informe o preço original e escolha um único percentual ou uma lista ordenada, como vinte por cento seguido de mais dez por cento. O resultado apresenta o preço original normalizado, cada percentual aplicado, o preço final e a economia total. Os cálculos são determinísticos, arredondam para centavos após cada etapa e rejeitam percentuais inválidos sem alterá-los silenciosamente.
Escolha o preço original e a entrada de desconto correta
Comece com um preço original não negativo expresso como número. Depois, informe exatamente um método de desconto. Para promoções que combinam reduções, use discounts com uma lista ordenada de um ou mais percentuais.
Não envie os dois campos, pois isso tornaria a ordem pretendida ambígua, e não omita ambos. Um desconto de zero por cento é válido e mantém o preço, enquanto um desconto de cem por cento reduz o preço atual a zero. Percentuais negativos são rejeitados porque funcionariam como acréscimos, e qualquer valor acima de cem também gera um erro de entrada inválida em vez de criar um preço negativo.
O preço original deve ser finito e respeitar o limite documentado. Esse contrato rigoroso é útil em prévias de checkout e fluxos automatizados: valores malformados param imediatamente, enquanto entradas aceitas seguem sempre o mesmo cálculo. A resposta devolve a lista de descontos, inclusive para um único percentual, permitindo que o código posterior trate os dois formatos de modo uniforme.
Entenda como descontos sucessivos alteram o resultado
Descontos sucessivos são aplicados ao preço restante; eles não são somados para uma única aplicação. Se um item custa cem unidades e recebe vinte por cento de desconto, restam oitenta. Outro desconto de dez por cento retira mais oito unidades e produz setenta e dois, em vez de representar uma redução simples de trinta por cento.
Essa distinção importa para cupons cumulativos, descontos comerciais, liquidações sazonais e faixas negociadas. A calculadora preserva a ordem fornecida em discounts e processa cada item uma vez. Depois de cada redução, o preço intermediário é arredondado para o centavo mais próximo, acompanhando a forma como muitos sistemas de varejo carregam um valor pagável entre promoções.
Uma entrada de cem por cento zera o preço atual, e descontos válidos posteriores o mantêm em zero. A lista é limitada a cem entradas para manter previsíveis as solicitações enviadas por engano.
Use a saída em compras, cotações e automação
Em especial, mensagens sobre valores excessivos informam que cem foi ultrapassado, deixando a regra comercial explícita sem limitar silenciosamente o percentual. A capacidade não faz chamadas de rede, não usa valores aleatórios e não mantém estado entre solicitações. Assim, é adequada para testes reproduzíveis e cálculos em lote.
Símbolos monetários são omitidos porque a aritmética funciona igualmente para qualquer moeda normalmente exibida com duas casas decimais.
Casos de uso
Conferir um preço promocional
Converta um preço anunciado e um percentual em valor final e economia exata.
Avaliar cupons cumulativos
Aplique vários percentuais na ordem correta sem somar indevidamente as taxas anunciadas.
Automatizar cotações
Produza valores finais e economias consistentes para cotações, checkout ou registros de aprovação.
Perguntas frequentes
Os descontos sucessivos são somados?
Não. Cada percentual incide sobre o preço restante após o desconto anterior.
Como os preços são arredondados?
O preço original e cada valor intermediário são arredondados para o centavo mais próximo.
Quanto é 25 % de desconto sobre 120?
O preço final é 90 e você economiza 30. Informe 120 como preço original e 25 como desconto; o resultado também mostra o percentual aplicado para você conferir.
O que acontece com desconto de 0 % ou de 100 %?
Desconto zero mantém o preço igual e desconto total leva o preço a zero. Percentuais negativos ou acima de 100 são recusados, porque funcionariam como acréscimo ou gerariam preço negativo.
O resultado mostra quanto eu economizo?
Sim. Ao lado do preço final aparece a economia total, que é o preço original arredondado menos o preço final arredondado, além de cada percentual aplicado, na ordem.
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/calc2/discount-price \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"original_price":120,"discount_percentage":25}'const res = await fetch("https://api.kit.forhosting.com/calc2/discount-price", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"original_price": 120,
"discount_percentage": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/discount-price",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"original_price": 120,
"discount_percentage": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/discount-price", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"original_price":120,"discount_percentage":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"original_price":120,"discount_percentage":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/discount-price", 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
{
"original_price": 120,
"discount_percentage": 25
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.discount_price",
"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
Escolha o preço original e a entrada de desconto correta
Para uma promoção simples, use discount_percentage com um valor de zero a cem.
Entenda como descontos sucessivos alteram o resultado
A resposta final inclui final_price e total_saved; este último corresponde ao preço original arredondado menos o preço final arredondado. Como todas as etapas usam a mesma regra determinística, solicitações com JSON idêntico geram resultados idênticos.
Use a saída em compras, cotações e automação
O objeto retornado foi projetado para leitura direta e integração fácil com outro sistema. original_price registra o valor inicial arredondado em centavos, discounts contém os percentuais na ordem aplicada, final_price mostra o valor restante após todas as reduções e total_saved apresenta a diferença total em relação ao início. Uma loja pode exibir final_price ao lado de total_saved, uma equipe de compras pode comparar ofertas com sequências diferentes e um serviço de cotação pode guardar toda a série para análise posterior. Na automação via API, verifique erros pelo código invalid_input e use a mensagem para identificar o campo incorreto. A versão no navegador é gratuita, enquanto cada solicitação API custa US$ 0,002.
Perguntas técnicas
O que acontece se um desconto passar de 100 por cento?
A solicitação falha com invalid_input; percentuais excessivos nunca são limitados automaticamente.
Posso informar os dois campos de desconto?
Não. Use discount_percentage para uma redução ou discounts para uma sequência ordenada.
Quanto custa uma solicitação API?
Cada solicitação API custa US$ 0,002; a calculadora no navegador é gratuita.