Calcule el precio final con descuento y el ahorro total
Un artículo de 120 con un 25 % de descuento cuesta 90: ahorra 30. Indique un descuento o una lista ordenada de rebajas y vea el precio final, cada porcentaje aplicado y el ahorro total, redondeado al céntimo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Precio original
- 120
- Porcentaje de descuento
- 25
- Descuentos
- 25
- Precio final
- 90
- Total ahorrado
- 30
Calcule el precio que pagará realmente después de aplicar un porcentaje de descuento o una serie de rebajas. Introduzca el precio original y elija un único porcentaje o una secuencia ordenada, por ejemplo, un veinte por ciento seguido de otro diez por ciento. El resultado muestra el precio original normalizado, cada porcentaje aplicado, el precio final y el ahorro total. Los cálculos son deterministas, redondean a céntimos después de cada paso y rechazan los porcentajes no válidos sin modificarlos silenciosamente.
Elija el precio original y la entrada de descuento correcta
Comience con un precio original no negativo expresado como número. A continuación, indique exactamente un método de descuento. Para promociones que combinan reducciones, utilice discounts con una lista ordenada de uno o varios porcentajes.
No envíe ambos campos, porque el orden deseado sería ambiguo, ni omita los dos. Un descuento del cero por ciento es válido y no cambia el precio, mientras que uno del cien por ciento reduce a cero el precio vigente. Los porcentajes negativos se rechazan porque funcionarían como recargos.
Cualquier porcentaje superior a cien también genera un error de entrada no válida en lugar de producir un precio negativo. El precio original debe ser finito y no superar el límite documentado. Este contrato estricto resulta útil en vistas previas de pago y procesos automatizados: los valores incorrectos se detienen de inmediato y las entradas aceptadas siguen siempre el mismo cálculo.
La respuesta devuelve la lista de descuentos, incluso para un único porcentaje, para que el código posterior trate ambos formatos de manera uniforme.
Comprenda cómo cambian el resultado los descuentos sucesivos
Los descuentos sucesivos se aplican al precio restante; no se suman para aplicarlos una sola vez. Si un artículo cuesta cien unidades y recibe un veinte por ciento de descuento, quedan ochenta. Una rebaja adicional del diez por ciento resta ocho unidades más y da como resultado setenta y dos, en vez de considerar la oferta como un descuento simple del treinta por ciento.
Esta diferencia importa en cupones acumulables, descuentos comerciales, rebajas de temporada y niveles de precios negociados. La calculadora conserva el orden indicado en discounts y procesa cada elemento una vez. Tras cada reducción, el precio intermedio se redondea al céntimo más cercano, como hacen muchos sistemas comerciales al trasladar un importe pagadero de una promoción a la siguiente.
Como cada paso aplica la misma regla determinista, solicitudes idénticas producen resultados idénticos. Un valor del cien por ciento deja el precio vigente en cero y cualquier descuento válido posterior lo mantiene en cero. La lista admite como máximo cien elementos para evitar solicitudes accidentales desmesuradas.
Use el resultado en compras, presupuestos y automatizaciones
En particular, los mensajes de valores excesivos indican que se supera cien, de modo que la regla empresarial queda explícita y el porcentaje no se limita silenciosamente. La capacidad no realiza solicitudes de red, no usa valores aleatorios ni conserva estado entre llamadas. Por ello sirve para pruebas repetibles y cálculos por lotes.
Se omiten los símbolos monetarios porque el cálculo funciona igual con cualquier moneda que normalmente muestre dos decimales.
Qué puede hacer con ella
Comprobar un precio rebajado
Convierta un precio de catálogo y un porcentaje anunciado en el importe final y el ahorro exacto.
Evaluar cupones acumulados
Aplique varios cupones en orden sin cometer el error de sumar sus porcentajes anunciados.
Automatizar presupuestos
Genere precios finales y ahorros coherentes para cotizadores, vistas de pago o registros de aprobación.
Preguntas frecuentes
¿Se suman los descuentos acumulados?
No. Cada porcentaje se aplica al precio que queda después del descuento anterior.
¿Cómo se redondean los precios?
El precio original y cada importe intermedio sucesivo se redondean al céntimo más cercano.
¿Cuánto es un 25 % de descuento sobre 120?
El precio final es 90 y usted ahorra 30. Escriba 120 como precio original y 25 como descuento; el resultado muestra también el porcentaje aplicado para que pueda comprobarlo.
¿Qué pasa con un descuento del 0 % o del 100 %?
Un descuento de cero deja el precio igual y uno completo lo deja en cero. Los porcentajes negativos o superiores a 100 se rechazan, porque funcionarían como un recargo o darían un precio negativo.
¿El resultado indica cuánto ahorro?
Sí. Junto al precio final aparece el ahorro total, que es el precio original redondeado menos el precio final redondeado, además de cada porcentaje aplicado en su orden.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"original_price": 120,
"discount_percentage": 25
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.discount_price",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Elija el precio original y la entrada de descuento correcta
Para una rebaja sencilla, utilice discount_percentage con un valor entre cero y cien.
Comprenda cómo cambian el resultado los descuentos sucesivos
La respuesta final incluye final_price y total_saved; este último es el precio original redondeado menos el precio final redondeado.
Use el resultado en compras, presupuestos y automatizaciones
El objeto devuelto está pensado para leerse directamente y transferirse con facilidad a otro sistema. original_price registra el importe inicial redondeado a céntimos, discounts contiene los porcentajes en el orden aplicado, final_price es el importe restante después de todas las reducciones y total_saved representa la diferencia total respecto del importe inicial. Una tienda puede mostrar final_price junto a total_saved, un equipo de compras puede comparar ofertas de proveedores con distintas secuencias y un servicio de presupuestos puede conservar toda la serie para revisarla posteriormente. En automatizaciones API, compruebe los errores mediante el código invalid_input y utilice el mensaje para localizar el campo incorrecto. La versión del navegador es gratuita y cada solicitud API cuesta $0.002.
Preguntas técnicas
¿Qué ocurre si un descuento supera el 100 por ciento?
La solicitud falla con invalid_input; los porcentajes excesivos nunca se limitan automáticamente.
¿Puedo proporcionar ambos campos de descuento?
No. Indique discount_percentage para una rebaja o discounts para una secuencia ordenada.
¿Cuánto cuesta una solicitud API?
Cada solicitud API cuesta $0.002; la calculadora del navegador es gratuita.