Data study
Hicimos una vuelta de 306 conversiones de unidades un millón de veces. Aquí está la precisión que realmente pierdes.
Haz un viaje de vuelta de cada conversión un millón de veces. El 88,2% de pares se desliza por exactamente cero; el peor caso pierde precisión en el 15.º dígito significativo. Aquí está por qué — y qué categorías son perfectamente estables.
By Buğra SözeriPublished
Cada conversión de unidad en la web se ejecuta en punto flotante de precisión doble IEEE 754 — el mismo formato de número de 64 bits que usan JavaScript, hojas de cálculo y la mayoría de calculadoras. Es preciso a aproximadamente 15–16 dígitos significativos, pero no es infinitamente preciso: la mayoría de fracciones decimales no se pueden almacenar exactamente en binario. Eso plantea una pregunta natural. Si conviertes un número de una unidad a otra y de vuelta, ¿obtienes el número original? Y si lo haces una y otra vez — ¿se acumula el error?
Lo probamos exhaustivamente. Para todos los 306 pares de conversión centrales en el catálogo de Convertitive (cada categoría excepto temperatura, que es una conversión de desplazamiento en lugar de una razón pura), comenzamos en el valor 1, convertimos hacia adelante y hacia atrás, y repetimos ese viaje de vuelta un millón de veces. Luego medimos cuánto se había desplazado el resultado de 1.
Hallazgo 1: El 88% de conversiones nunca se desplazan en absoluto
De los 306 pares, 270 (88,2%) devolvieron exactamente 1 después de un millón de viajes de vuelta — bit a bit idéntico, error cero. Estos son los pares cuya razón unitaria es exactamente representable en punto flotante binario, así que cada conversión es perfectamente reversible no importa cuántas veces la repitas.
Ese es un resultado más fuerte de lo que la mayoría de personas espera. La intuición de que "el error de punto flotante siempre se acumula" es simplemente falsa para la mayoría de conversiones reales.
Hallazgo 2: incluso el peor caso sigue siendo preciso a 15 dígitos
Los 36 pares restantes sí se desplazaron — pero por casi nada. Aquí están los peores infractores después de un millón completo de viajes de vuelta:
| Par de conversión | Categoría | Deriva absoluta después de 1.000.000 viajes de vuelta |
|---|---|---|
| millas → pulgadas | longitud | 1,78 × 10⁻¹⁵ |
| kPa → mmHg | presión | 1,11 × 10⁻¹⁵ |
| años → segundos | tiempo | 9,99 × 10⁻¹⁶ |
| oz → toneladas | peso | 8,88 × 10⁻¹⁶ |
| lb → toneladas | peso | 8,88 × 10⁻¹⁶ |
| nudos → km/h | velocidad | 7,77 × 10⁻¹⁶ |
| bar → psi | presión | 6,66 × 10⁻¹⁶ |
| kWh → joules | energía | 4,44 × 10⁻¹⁶ |
El único par peor, millas → pulgadas, se desplazó por 1,78 × 10⁻¹⁵ — aproximadamente dos partes en un cuadrillón, después de un millón de viajes de vuelta. Un usuario normal realiza exactamente una conversión, donde el error es millones de veces más pequeño todavía y se sienta muy lejos del 15.º dígito significativo. En términos prácticos, el resultado es exacto.
Hallazgo 3: qué categorías son perfectamente estables
La deriva se agrupa por categoría, y el patrón se explica completamente por cómo las definiciones de unidad factorizan en binario:
| Categoría | Pares probados | Pares con cero deriva | Peor deriva |
|---|---|---|---|
| datos (bytes, bits) | 30 | 30 (100%) | 0 |
| volumen | 56 | 56 (100%) | 0 |
| energía | 30 | 28 (93%) | 4,44 × 10⁻¹⁶ |
| tiempo | 30 | 28 (93%) | 9,99 × 10⁻¹⁶ |
| peso | 30 | 26 (87%) | 8,88 × 10⁻¹⁶ |
| longitud | 56 | 48 (86%) | 1,78 × 10⁻¹⁵ |
| torque | 20 | 16 (80%) | 4,44 × 10⁻¹⁶ |
| presión | 30 | 22 (73%) | 1,11 × 10⁻¹⁵ |
| potencia | 12 | 8 (67%) | 2,22 × 10⁻¹⁶ |
| velocidad | 12 | 8 (67%) | 7,77 × 10⁻¹⁶ |
Datos y volumen son perfectamente estables — cada par se redondea sin pérdidas. Las unidades de datos son potencias de dos y diez que el binario maneja limpiamente; las unidades de volumen en este catálogo comparten factores que se cancelan exactamente. Las categorías con más deriva — potencia y velocidad — están dominadas por definiciones como potencia de caballo y nudos que incorporan factores irracionales-en-binario.
Por qué sucede esto
El punto flotante de precisión doble almacena 53 bits de mantisa, dando una épsilon de máquina de aproximadamente 2,2 × 10⁻¹⁶ — la brecha relativa más pequeña entre números representables cerca de 1. Una conversión multiplica por una razón de dos factores de unidad. Cuando esa razón es una fracción binaria exacta (o los factores hacia adelante y hacia atrás se cancelan exactamente), el viaje de vuelta es sin pérdidas y la deriva es cero para siempre. Cuando la razón noes exactamente representable — como con la pulgada’s 0,0254 m o la milla’s 1609,344 m — cada conversión se redondea al valor representable más cercano, dejando un error en el orden de una épsilon. Durante un millón de viajes de vuelta esos errores toman un paseo aleatorio lento, por eso incluso el peor caso solo alcanza algunos tiempos 10⁻¹⁵.
La conclusión práctica
La conversión de unidades en el navegador es, para todos los propósitos prácticos, exacta. El error está acotado por la épsilon de máquina, no se acumula de manera significativa en uso normal, y siempre está muy por debajo de la precisión que jamás mostrarías. Si alguna vez te has preguntado si encadenar conversiones a través de una herramienta silenciosamente corrompe tus números — no lo hace. Para la imagen completa de cómo los resultados de Convertitive se comparan con valores de referencia autorizados, ve el estudio de precisión de convertidor y la metodología de conversión.
Metodología
Para cada par ordenado de unidades centrales (A, B) dentro de una categoría, computamos v ← v × (factorA / factorB) luego v ← v × (factorB / factorA), comenzando desde v = 1, repetido 1.000.000 de veces, y grabamos |v − 1|. Los factores son los valores exactos de factorToBase de los datos de unidad de Convertitive, derivados de NIST SP 811. Toda la aritmética es IEEE 754 binary64 (tipo de número nativo de JavaScript). La temperatura fue excluida porque es una conversión afín (tiene un desplazamiento aditivo), no una razón pura, así que el modelo de viaje de vuelta anterior no se aplica. El procedimiento es determinista: las mismas entradas siempre producen los mismos valores de deriva informados aquí.
Frequently asked questions
- ¿Qué es la deriva de conversión?
- La deriva es el pequeño error que se acumula cuando conviertes un valor de una unidad a otra y de vuelta repetidamente. En aritmética exacta, convertir 1 metro a pies y de vuelta devuelve exactamente 1. En punto flotante de precisión doble IEEE 754 — lo que usa cada navegador y hoja de cálculo — los valores intermedios se redondean a 53 bits, así que el viaje de vuelta puede aterrizar un poco lejos de donde comenzó.
- ¿Debería preocuparme por error de punto flotante en conversiones de unidades?
- Para cualquier uso realista, no. Después de un millón de viajes de vuelta, el peor par que medimos (millas a pulgadas) se desplazó por 1,78 × 10⁻¹⁵ — aproximadamente dos partes en un cuadrillón. Una sola conversión real se desliza mucho menos que eso, y el error es muchos órdenes de magnitud por debajo de cualquier precisión de visualización que jamás usarías. La matemática es efectivamente exacta para propósitos prácticos.
- ¿Por qué algunas conversiones tienen cero deriva?
- Cuando la razón entre dos unidades es exactamente representable en punto flotante binario, el viaje de vuelta es sin pérdidas. Las potencias de diez que se resuelven en fracciones binarias limpias, y definiciones de unidad que comparten factores, producen razones que el hardware puede almacenar exactamente. 270 de los 306 pares que probamos (88,2%) cayeron en esta categoría y mostraron cero deriva incluso después de un millón de viajes de vuelta.
- ¿Qué conversiones se desplazan más?
- Pares métrico-a-imperial cuyos factores definitorios no son fracciones binarias exactas — millas a pulgadas, kPa a mmHg, nudos a km/h, kilovatio-hora a joules. Estos se basan en factores como 1609,344 m por milla o 0,0254 m por pulgada, que no se pueden almacenar exactamente en binario, así que cada conversión introduce un pequeño error de redondeo sub-épsilon.
- ¿Cómo se midió esto?
- Para cada par de conversión ordenado de unidades centrales, comenzamos con el valor 1, convertimos A→B luego B→A, y repetimos ese bucle 1.000.000 de veces usando los factores exactos de los datos de unidad de Convertitive y aritmética de precisión doble estándar. Luego medimos la diferencia absoluta del valor inicial de 1. La temperatura fue excluida porque es una conversión afín (desplazamiento), no una razón pura. La computación es determinista y reproducible.
- ¿Significa esto que Convertitive redondea mis respuestas?
- Convertitive calcula con precisión doble completa y solo redondea para visualización. La deriva estudiada aquí es intrínseca a la aritmética de punto flotante en sí, no a ningún redondeo que añada Convertitive — y es mucho más pequeña que el redondeo de visualización, por lo que nunca la ves.
Sources & references
Authoritative references cited by this piece. Verified by Buğra Sözeri on the dates shown and re-checked at every deploy.
- IEEE 754-2019 — Estándar para Aritmética de Punto Flotante — Define el formato de precisión doble (binary64) cuya mantisa de 53 bits establece la épsilon de máquina de ~2,2 × 10⁻¹⁶ que delimita la deriva medida aquí(as of )
- Especificación del Lenguaje ECMAScript — Tipo Number — El Number de JavaScript es IEEE 754 binary64; la computación de viaje de vuelta se ejecuta exactamente en esta aritmética(as of )
- NIST SP 811 — Guía para el Uso del Sistema Internacional de Unidades — Fuente autorizada para los factores de conversión métrico-a-imperial exactos (p.ej. 1 pulgada = 0,0254 m) utilizados como definiciones de pares(as of )
- Datos de unidad de Convertitive y metodología — Los valores factorToBase que impulsan cada par en este estudio; el estudio es reproducible a partir de estos datos(as of )
Related
Published June 27, 2026