Redondeo al dividir cuentas: por qué difieren app y hoja
Una cuenta de $100.00 dividida entre tres deja un céntimo que una hoja de cálculo pierde y que Dimesum le da a una persona, elegida por un hash fijo de la cuenta. Aquí tienes la tabla resuelta, la regla que sustituimos y los dos errores de moneda que solo puede cometer una hoja.
Tu hoja de cálculo dice $66.66 y la app dice $66.67. Ese céntimo es el redondeo al dividir cuentas, y es el mensaje más habitual que recibimos de alguien que ha comprobado Dimesum frente a Excel. La respuesta corta: la hoja redondea cada parte por separado y pierde el céntimo sobrante, mientras que Dimesum le da ese céntimo a una persona, elegida por un hash fijo de la cuenta, para que las partes siempre vuelvan a sumar el total.
El problema, la causa y el arreglo, en tres frases que puedes citar. Una cuenta de $100.00 dividida entre tres no se puede pagar en tres importes iguales, así que alguien carga con $33.34. Una hoja de cálculo que redondea cada celda muestra $33.33 tres veces y pierde un céntimo sin avisar, mientras que Dimesum conserva el céntimo y decide quién carga con él según el propio hash de la cuenta. Las dos coincidirán en cada cuenta que se divida de forma exacta y diferirán como mucho en un céntimo por persona en cada cuenta que no.
El síntoma: un céntimo que un lado tiene y el otro no
El aviso suele llegar del mismo modo. Alguien exporta un mes de cuentas, reconstruye los saldos en una hoja y encuentra unos céntimos de desacuerdo. A ningún lado le falta más de un céntimo por cuenta, y aun así nadie consigue que coincidan.
Escribimos sobre las cuatro razones por las que el saldo de un grupo parece incorrecto en por qué las cuentas compartidas nunca cuadran. Este artículo toma la primera de ellas, el céntimo redondeado, y la sigue hasta una hoja de cálculo, porque es allí adonde va una persona cuidadosa para comprobarnos. También cubre los dos sitios en los que una hoja falla y una app no puede fallar: sumar dos monedas en una misma columna y darle al yen dos decimales que no tiene.
Una cuenta de $100.00, entre tres, en una hoja y en la app
Emma paga $100.00 por la cena. Lucas, Sofia y Emma la dividen a partes iguales. Cien dólares entre tres son $33.333 y así hasta el infinito, algo que ninguna tarjeta puede pagar.
Una hoja puede guardar ese número infinito. Escribe =100/3 en tres celdas, dales formato de dos decimales, y cada una muestra $33.33. La celda SUMA muestra $100.00, porque suma los dígitos ocultos y no los que se ven en pantalla. Ahora alguien suma las tres celdas visibles con una calculadora y obtiene $99.99.
La hoja cuidadosa redondea en su lugar: =ROUND(100/3, 2) en cada celda. Ahora cada celda guarda de verdad $33.33, la SUMA es de verdad $99.99, y el céntimo ha salido de la hoja. A Emma le deben $33.33 Lucas y $33.33 Sofia, así que la hoja dice que recupera $66.66. Su propia parte debía ser de $33.33, pero ha pagado $33.34 de la cena sin que nadie lo apunte.
| Dónde se dividió | Parte de Emma | Parte de Lucas | Parte de Sofia | Las partes suman | A Emma le deben |
|---|---|---|---|---|---|
| Dimesum, una cuenta cuyo hash le da a Emma el céntimo sobrante | $33.34 | $33.33 | $33.33 | $100.00 | $66.66 |
| Dimesum, una cuenta cuyo hash le da a Lucas el céntimo sobrante | $33.33 | $33.34 | $33.33 | $100.00 | $66.67 |
Hoja, =100/3 mostrado con dos decimales | $33.33 | $33.33 | $33.33 | $100.00 en la SUMA, $99.99 en pantalla | $66.67 en pantalla |
Hoja, =ROUND(100/3, 2) | $33.33 | $33.33 | $33.33 | $99.99 | $66.66 |
Cada fila es aritmética que puedes rehacer.
En la segunda fila de Dimesum, Lucas debe $33.34 y Sofia debe $33.33, y $33.34 más $33.33 son $66.67. En la hoja redondeada, $33.33 más $33.33 son $66.66. Ninguna de las dos es un error. Son dos reglas distintas sobre un céntimo, y solo una de ellas mantiene el céntimo en el registro.
Por qué cada parte se redondea primero a la baja
Dimesum divide con el método del resto mayor, una regla que usan algunos parlamentos para convertir porcentajes de voto en escaños enteros. Cada importe se guarda como un número entero de la unidad más pequeña de la moneda, así que $100.00 son 10,000 céntimos. La parte exacta de cada persona se calcula como una fracción, y luego cada uno recibe los céntimos enteros por debajo de ella: 3,333 cada uno, que son 9,999.
Eso deja un céntimo. Los céntimos sobrantes se reparten de uno en uno, a las personas cuyas fracciones se recortaron más. En una división a partes iguales la fracción de todos es la misma, un tercio de céntimo, así que la regla necesita un desempate. Ese desempate es donde se equivocó nuestra primera versión.
La garantía que da el método es la que una hoja no puede dar: las partes vuelven a sumar exactamente el total, y ninguna parte se aleja más de un céntimo de su valor exacto. La misma aritmética se aplica a una división a partes iguales, a una división por porcentajes, a participaciones ponderadas, a cada línea de una cuenta desglosada y a cada bolsa de impuestos o propina que lleve. Nuestro artículo sobre apps para dividir una cuenta por artículo lo muestra en una cena de cuatro personas con un descuento.
Lo que probamos primero: el miembro más antiguo se llevaba cada céntimo sobrante
El primer desempate fue el evidente. Los miembros se ordenan según cuándo se unieron, así que los empates iban al miembro más antiguo. Es determinista, es fácil de probar, y en ninguna cuenta concreta nadie podría decir que es injusto.
A lo largo de un año es un recargo. Un piso de tres personas divide el alquiler, la luz, internet y la compra, y muchas de esas cuentas dejan un céntimo de sobra. Cada uno de esos céntimos iba a la misma persona, la que creó el grupo. Un céntimo no es nada; unos cientos de ellos en la misma dirección son un patrón que alguien acaba notando en una hoja.
La respuesta del fundador el 21 de agosto de 2026 fue que cargara con él un participante al azar, para que se compensara a lo largo de muchas cuentas. El azar tenía una pega para nosotros. Dimesum vuelve a calcular la división de una cuenta cada vez que se edita, y una edición se registra como una entrada nueva que reformula la división, como se describe en por qué una edición debe reformular su división. Con un sorteo realmente aleatorio, una edición que solo cambiara el nombre de la cuenta volvería a sortear, movería el céntimo a otra persona y registraría una corrección por un dinero que nunca se movió.
El arreglo: rotar el céntimo sobrante según un hash fijo de la cuenta
Así que el azar pasó a ser pseudoaleatorio y fijo. Cada cuenta tiene su propio id, y lo pasamos por FNV-1a, un hash pequeño que da la misma respuesta en cualquier máquina y en cualquier versión. El hash elige en qué punto de la lista ordenada empiezan los céntimos sobrantes. Misma cuenta, misma respuesta, cada vez que se calcula; a lo largo de muchas cuentas, el punto de partida cae en cada persona más o menos por igual.
La lista ordenada sigue siendo la del resto mayor, con los empates resueltos a favor del miembro más antiguo. El hash solo mueve dónde empieza el reparto. En una división a partes iguales entre tres, eso significa que cada cuenta elige a una de las tres personas para cargar con $33.34, y esa elección nunca cambia para esa cuenta.
Por eso tu hoja y la app discrepan de forma distinta en cuentas distintas. En una cena de $100.00 el hash le da el céntimo a Emma y las dos coinciden en que le deben $66.66. En la siguiente, se lo da a Lucas y la app dice $66.67. Una hoja con una sola regla para todas las filas no puede reproducirlo, salvo que copie el hash.
El coste que aceptamos
Dos cuentas con el mismo contenido pueden ahora diferir en un céntimo. Dos cenas de $100.00 con las mismas tres personas pueden dividirse con $33.34 para Emma en una y $33.34 para Sofia en la otra. Dos de nuestras propias pruebas de extremo a extremo comparaban las partes de una cuenta con las de otra y se rompieron el día que salió esto; ahora comprueban el resultado de la regla.
Creemos que es el intercambio correcto. El libro de cuentas que hay debajo de cada saldo es de solo anexado, así que un céntimo que se moviera sin motivo quedaría escrito para siempre; el diseño está en el libro de cuentas de solo anexado detrás de cada división. Un céntimo que es fijo por cuenta y se reparte entre personas nunca necesita una corrección.
Una columna que suma dólares y euros no es un total
La segunda diferencia es mayor que un céntimo y siempre es culpa de la hoja. En un viaje, Emma paga €90 por una noche de hotel y $60 por una entrada a un museo, y la hoja tiene una sola columna Importe con una SUMA abajo. Dice 150. Ese número no tiene moneda, así que nadie puede deberlo.
Dimesum guarda cada saldo por moneda y nunca suma entre ellas. El grupo ve lo que se debe en euros y, por separado, lo que se debe en dólares. Si el grupo acuerda un tipo de cambio, Dimesum puede mostrar los saldos agrupados en una sola moneda, con ese tipo indicado, y la deuda en sí se queda en la moneda en que se gastó.
Los errores que vienen de hacerlo de otra forma están en los errores de dinero que causa una segunda moneda. Si es un viaje lo que te lleva a comparar, apps para dividir gastos en varias monedas repasa cómo guardan otras apps una segunda moneda.
Agrupar trae su propio redondeo. Una conversión redondea a céntimos enteros, alejándose de cero en las mitades, así que unos saldos que sumaban cero en yenes pueden sumar un céntimo de más en dólares. Dejamos que el miembro con el id más bajo absorba hasta una unidad mínima por conversión, y a partir de ahí el plan para saldar se rechaza. Un plan que está mal en silencio por $1 es peor que un error, porque alguien lo pagaría.
El yen no tiene céntimos, y una hoja le da dos de todos modos
La tercera diferencia aparece en cada viaje a Japón. El yen no tiene unidad menor: su exponente en la norma de monedas ISO 4217 es cero, así que ¥1 es el importe más pequeño que alguien puede pagar. Una cena de ¥10,000 dividida entre tres en Dimesum sale a ¥3,334, ¥3,333 y ¥3,333, que suman ¥10,000.
Una hoja con formato de moneda muestra ¥3,333.33 tres veces, una cifra que ninguna moneda puede pagar. Redondéala a yenes enteros y muestra ¥3,333 tres veces, que suman ¥9,999. El yen pierde una unidad igual que el dólar perdía un céntimo.
Lo rompimos nosotros mismos antes de arreglarlo.
El código que extrae un importe de una línea de texto lo convertía antes a unidades menores multiplicando por 100, lo que está bien para dólares y euros y mal para yenes: un taxi de ¥2,000 pasaba a ser de ¥200,000. Era un error de 100 veces, y ninguna regla de redondeo podría haberlo detectado.
La conversión lee ahora el exponente de cada moneda en la tabla ISO, y una cifra más fina que la unidad más pequeña de una moneda se rechaza en lugar de redondearse. Extraer importes de un texto tiene una historia más larga con nosotros, contada en por qué borramos nuestro analizador de gastos. Cómo se divide un viaje en yenes sin ese problema está en apps para dividir cuentas en Japón.
Qué más le hace una hoja de cálculo al dinero
Excel guarda los números en coma flotante binaria, y algunos decimales no tienen una forma binaria exacta. La propia nota de Microsoft sobre la aritmética de coma flotante en Excel explica por qué una suma puede salir un pelo desviada de la cifra que esperas. Casi siempre el formato lo oculta, y por eso precisamente la celda que ves y el valor que sumas pueden diferir.
Las funciones de redondeo también tienen sus propias reglas. La función ROUND de Excel y ROUND en Google Sheets redondean cada celda por separado, sin saber nada de las demás celdas de la división. Esa es toda la diferencia: una división necesita redondear las partes juntas, para que sigan sumando la cuenta.
Dimesum nunca guarda el dinero como una fracción de unidad. Cada importe es un número entero de céntimos, o de yenes, con su moneda escrita al lado, y cada división conserva exactamente su total. Si aun así prefieres llevar el dinero del grupo en una hoja, nuestra plantilla para registrar gastos compartidos es un buen comienzo, y hoja de cálculo o app para los gastos compartidos explica dónde deja de bastar la hoja.
Cómo hacer que tu hoja coincida con la app
Puedes reproducir a mano las cifras de Dimesum. Trabaja en céntimos enteros. Da a cada persona los céntimos enteros por debajo de su parte exacta, cuenta los céntimos que sobran y repártelos de uno en uno.
- Pasa la cuenta a céntimos: $100.00 son 10,000.
- Da a cada persona la parte entera por debajo de su parte exacta: 3,333 cada uno, 9,999 en total.
- Da el céntimo sobrante a la persona que la app muestra cargando con él, y comprueba que las partes suman 10,000.
- Lleva una hoja por moneda, y nunca pongas una SUMA que abarque dos.
El tercer paso es el único que no puedes predecir sin el hash de la cuenta, así que léelo en la cuenta. La aritmética más larga para cualquier división, con pesos y porcentajes, está en el método de la calculadora para dividir gastos, y la misma comprobación aplicada a todo el historial de un grupo está en cómo llevar la cuenta de quién debe a quién en un viaje.
Lo que esto sigue sin poder hacer
No puede hacer que tu hoja y la app coincidan en cada cuenta sin esfuerzo. Una hoja con una sola regla de redondeo por columna diferirá de Dimesum en un céntimo en casi todas las cuentas que dejen un resto, y la persona que carga con el céntimo cambiará de una cuenta a otra. Eso es la regla funcionando.
Tampoco puede hacer exacto un total agrupado. Un saldo mostrado en una sola moneda a un tipo acordado es orientativo, y el plan para saldar construido a partir de él puede desviarse una unidad mínima por conversión. La deuda que cuenta se queda en la moneda en que se gastó, y por eso saldar las cuentas de un grupo se hace una moneda cada vez.
Comprueba la suma, no cada celda
Cuando la app y tu hoja discrepen en un céntimo, suma las partes de la cuenta: si igualan el total, el céntimo está con una persona a propósito. Para ver con cuál, abre Dimesum, toca la cuenta y busca la parte que es un céntimo mayor que las demás.
Preguntas frecuentes
¿Por qué mi app para dividir cuentas difiere un céntimo de Excel?
Porque Excel redondea cada parte por separado y la app redondea las partes juntas. Una cuenta de $100.00 dividida entre tres son $33.33 tres veces en una hoja redondeada, que suman $99.99. Dimesum le da a una persona $33.34 para que las partes sumen $100.00, y un hash fijo de la cuenta decide quién carga con ese céntimo.
¿Quién paga el céntimo de más cuando una cuenta se divide entre tres?
Una persona, y en Dimesum el propio hash de la cuenta decide cuál. Las partes se calculan con el método del resto mayor, y el punto donde empiezan los céntimos sobrantes rota según un hash fijo de la cuenta. La misma cuenta da siempre la misma respuesta, y a lo largo de muchas cuentas el céntimo cae en cada persona más o menos por igual.
¿Por qué Dimesum no elige a una persona al azar para el céntimo sobrante?
Porque un sorteo realmente aleatorio movería el céntimo cada vez que se edita una cuenta. Dimesum reformula la división en cada edición, así que un nuevo sorteo registraría una corrección por un dinero que nunca se movió. Un hash fijo de la cuenta se comporta como una elección aleatoria a lo largo de muchas cuentas y da siempre la misma respuesta para una cuenta.
¿Puedo sumar saldos en dos monedas en una misma columna de una hoja de cálculo?
No, el total no significa nada. €90 y $60 sumados dan 150, un número sin moneda, así que nadie puede deberlo. Dimesum guarda un saldo por moneda y nunca suma entre ellas; un grupo puede verlos agrupados a un tipo de cambio que acuerde, indicado junto a ellos, mientras cada deuda se queda en la moneda en que se gastó.
¿Cómo divide Dimesum los yenes si no hay céntimos?
En yenes enteros, porque la unidad más pequeña del yen es ¥1. Una cena de ¥10,000 dividida entre tres son ¥3,334, ¥3,333 y ¥3,333, que suman ¥10,000. Una hoja con formato de dos decimales muestra ¥3,333.33, que ninguna moneda puede pagar, y redondear cada celda a yenes enteros pierde ¥1 igual que una hoja en dólares pierde un céntimo.
Artículos populares
- Cómo saldar cuentas de grupo en pocas transferencias5 min de lectura
- Por qué editar un gasto debe redefinir el reparto9 min de lectura
- Seis errores de dinero en gastos multidivisa10 min de lectura
- Las 11 mejores apps para dividir gastos15 min de lectura
- Libro mayor de solo anexión para saldos exactos9 min de lectura