Calculadora de descuentos
Vea cuánto pagará de verdad con una rebaja porcentual: un 15 % sobre 19,99 ahorra 3,00 y deja el precio en 16,99, exacto al céntimo. Útil para promociones, vistas previas del pago y tareas escolares. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Precio
- 100.00
- Porcentaje
- 10
- Importe del descuento
- 10.00
- Precio final
- 90.00
Compradores y comercios buscan una calculadora de descuentos que convierta un precio original y un porcentaje en un ahorro y un precio final claros.
Del precio y el porcentaje al ahorro y el precio final
Compradores y comercios suelen necesitar las mismas dos respuestas: cuánto quita un descuento porcentual y cuánto queda por pagar. Escriba el precio original y el porcentaje de rebaja, y la calculadora le devuelve el importe del descuento y el precio final. Un precio de 100,00 con un 10 % de descuento da un descuento de 10,00 y un precio final de 90,00; 19,99 con un 15 % da 3,00 y 16,99. Las tiendas lo usan para revisar precios antes de publicar una promoción, los procesos de pago para mostrar el ahorro de un cupón con un porcentaje simple, y los estudiantes para comprobar ejercicios con respuestas exactas al céntimo.
Por qué cada resultado es exacto al céntimo
El precio se convierte primero en céntimos enteros, así que no se cuela ninguna fracción de céntimo. El descuento es el precio en céntimos por el porcentaje dividido entre 100, redondeado hacia arriba en la mitad, y después se resta del precio original para obtener el precio final. Así coincide con el redondeo habitual del comercio, y los dos importes salen siempre con dos decimales exactos. Para que el resultado sea fiable, el precio debe llevar como máximo dos decimales o ser un número entero, sin ceros a la izquierda ni signo más, y el porcentaje debe ser un entero de 0 a 100. Lo demás se rechaza en lugar de corregirse en silencio.
Half-up al céntimo más cercano
El importe descontado se calcula con half-up de centavos por el porcentaje entre cien, y se resta del original para el precio final. Por ejemplo, 19.99 al 15 por ciento da 3.00 de descuento y 16.99 final, alineado con el redondeo comercial habitual.
Qué puede hacer con ella
Promociones de tienda
Muestre precios finales de campañas de porcentaje antes de publicar un banner.
Vista previa de pago
Estime el ahorro cuando un cupón aplica un porcentaje simple.
Tareas y formación
Compruebe ejercicios de descuento con respuestas half-up al céntimo.
Preguntas frecuentes
¿Puedo usar un precio float?
No. Use cadena de dinero o un entero no negativo de unidades enteras.
¿La salida es float?
No. El dinero va en strings de dos decimales; percent es entero.
¿Cómo calculo un 15 % de descuento sobre 19,99?
Escriba 19,99 como precio y 15 como porcentaje. El descuento es de 3,00 y el precio final de 16,99, redondeados al céntimo como lo hace la mayoría de los comercios.
¿Cómo se redondea el descuento?
Al céntimo y hacia arriba cuando queda justo en la mitad. El cálculo se hace con céntimos enteros, de modo que el 15 % de 19,99 da un descuento de 3,00 exactos.
¿Qué porcentajes de descuento puedo usar?
Números enteros de 0 a 100. Un porcentaje con decimales, o uno fuera de ese rango, se rechaza con un mensaje claro en lugar de ajustarse sin avisar.
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/dev/discount-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"price":"100.00","percent":10}'const res = await fetch("https://api.kit.forhosting.com/dev/discount-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"price": "100.00",
"percent": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/discount-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"price": "100.00",
"percent": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/discount-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"price":"100.00","percent":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"price":"100.00","percent":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/discount-calculator", 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
{
"price": "100.00",
"percent": 10
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.discount_calculator",
"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.
Límites
max_price_cents | 999999999999999 |
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
Entrada de dinero canónica, sin float
Envíe el precio como cadena de dígitos con uno o dos decimales opcionales, o como entero no negativo de unidades enteras. Dentro se trabaja en centavos enteros. Se rechazan float JSON, ceros a la izquierda, signos más y más de dos decimales fraccionarios.
Porcentaje de descuento de cero a cien
El porcentaje es un entero de 0 a 100 inclusive. Se aceptan cadenas solo de dígitos y se normalizan a entero. Floats, booleanos y valores fuera de rango devuelven invalid_input tipado en lugar de clampear en silencio.
Salidas en cadena estables
price, discount_amount y final_price salen siempre como cadenas con exactamente dos decimales. percent sale como entero. Campos faltantes y negativos producen invalid_input con substrings estables para tests.
Casos de integración
Comprobaciones automáticas
Fije discount_amount y final_price en fixtures golden de CI.
Preguntas técnicas
¿Cómo se redondea el descuento?
Half-up al céntimo con aritmética entera.
¿Qué rango de porcentaje admite?
Enteros de 0 a 100 inclusive.
¿Y si el precio es negativo?
invalid_input con match negativo.
¿Es gratis en el navegador?
Sí en escritorio y móvil. La app nativa usa el API a $0.002.