Comprobador de enteros
42 es un entero, 3.0 también porque vale tres, y 3.0000001 no lo es. Escriba cualquier valor y obtenga un sí o un no estricto; algo como abc se rechaza con un aviso en lugar de pasar por un simple no. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Valor
- 42
- Valor
- 42
Usted envía un valor como texto — "42", "-7.5", "1e3" — y recibe un true o false estricto, junto con el número analizado. Entiende espacios en blanco, signos, decimales y notación científica, y se niega a adivinar: cualquier cosa que no sea un número finito, como "abc", "Infinity" o una cadena vacía, se rechaza con un error claro en lugar de un false silencioso.
Qué cuenta como número entero
Un entero es un número sin parte fraccionaria: 42, -17 y 0 son enteros; 3.5 y -0.01 no lo son. El comprobador de enteros aplica exactamente esta definición matemática mediante la prueba estándar Number.isInteger, sin redondeos ni tolerancias. Eso significa que 3.0 — escrito con punto decimal pero igual a un número entero — devuelve true, porque su valor es tres, mientras que 3.0000001 devuelve false.
La notación científica se resuelve primero, de modo que 1e3 es un entero (mil) y 1.5e-1 no lo es (0.15). La comprobación trata sobre el valor, no sobre cómo se escribió: los ceros finales tras el punto decimal, un signo más inicial y los espacios alrededor se aceptan, porque ninguno cambia lo que el número realmente es. Si su aplicación necesita rigor a nivel de cadena — por ejemplo, rechazar "3.0" tal como se tecleó — esa es una regla de formato que debe añadir encima de esta comprobación numérica.
Por qué la entrada no finita es un error y no un false
Hay dos clases de fallo al validar un número. La primera es un número bien formado que simplemente no es entero: ese es un false legítimo. La segunda es una entrada que ni siquiera es un número finito: "hello", "Infinity", "NaN", "12px" o una cadena vacía.
Colapsar el segundo caso en false oculta problemas de calidad de datos: un pipeline que recibe "Infinity" desde una división rota aguas arriba lo trataría silenciosamente como "no entero" y seguiría adelante. La entrada numérica válida siempre devuelve un booleano. Observe además que el analizador es estricto con coincidencias de cadena completa: "42abc" se rechaza, nunca se trunca a 42 como harían algunos analizadores laxos.
Preguntas frecuentes
¿Cuánto cuesta?
También es gratis ejecutarlo en su navegador en esta página.
¿Es "3.0" un número entero?
Sí. La comprobación trata sobre el valor numérico, no sobre la notación: 3.0 equivale a 3, así que es un entero. Formas como "3.5" o "1.5e-1" no lo son.
¿Qué pasa con "Infinity" o "abc"?
Solo la entrada numérica bien formada devuelve true o false.
¿Acepta notación científica?
Sí. "1e3" se interpreta como 1000 y devuelve true; "1.5e-1" es 0.15 y devuelve false.
¿Redondea o tolera casi-enteros?
No. La comprobación es exacta: 3.0000001 no es un entero y devuelve false. Redondear es una decisión aparte que su aplicación debe tomar explícitamente.
¿Se admiten números negativos?
Sí. -17 es un entero, -0.01 no. También se aceptan un signo más inicial y espacios alrededor.
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/math/integer \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"42"}'const res = await fetch("https://api.kit.forhosting.com/math/integer", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "42"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/integer",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "42"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/integer", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"42"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"42"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/integer", 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
{
"value": "42"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.integer",
"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
La API de comprobación de enteros responde a una pregunta engañosamente simple: ¿es este valor un número entero? Úsela para validar formularios, cargas de API e importaciones de datos antes de que un valor fraccionario se cuele en un campo que solo acepta números enteros.
Por qué la entrada no finita es un error y no un false
Este endpoint separa los dos casos deliberadamente. Cualquier otra cosa devuelve un error invalid_input con un mensaje que explica qué falló, para que su código pueda detenerse, registrar el valor ofensivo y fallar rápido en lugar de propagar basura.
Cómo integrarlo
La respuesta contiene el número analizado y el resultado booleano, de modo que una sola llamada valida y convierte a la vez. Envíe el valor en el campo llamado value, siempre como texto; los alias number, n e input se aceptan por comodidad. Una integración típica valida la entrada del usuario antes de escribir en una columna de base de datos de tipo entero, filtra filas en una importación CSV donde un ID debe ser entero, o protege un endpoint de API que acepta cantidades. Las magnitudes muy grandes merecen una reflexión: más allá de 2^53 el formato de doble precisión no puede representar cada entero de forma distinta, así que 9007199254740993 es indistinguible de sus vecinos — es una propiedad del formato IEEE-754 que comparten todos los sistemas compatibles con JavaScript, no de esta comprobación. El mismo código se ejecuta gratis en su navegador en esta página para pruebas rápidas, y la API cuesta $0.002 por petición cuando la automatiza a escala.
Casos de integración
Validar formularios y entradas de API
Rechace cantidades fraccionarias antes de que lleguen a una columna de base de datos de tipo entero, con un error claro que mostrar al usuario.
Filtrar filas en una importación de datos
Separe una columna de valores mixtos en números enteros y no enteros durante una importación CSV o JSON, y ponga en cuarentena los no válidos.
Proteger endpoints que solo aceptan enteros
Compruebe números de página, contadores e IDs en el borde de su servicio para que la entrada fraccionaria o no finita falle rápido en lugar de corromper la lógica posterior.