Why a finance app should never round your money

Floating point arithmetic quietly loses paise. Rovezi stores every amount as an exact integer and posts balanced entries for each transaction.

Type 0.1 + 0.2 into the console of almost any programming language and you will get 0.30000000000000004. That tiny tail is not a bug in your laptop. It is how computers store most decimal numbers: as binary fractions that can only approximate values like 0.1.

For a game or a weather chart, nobody cares. For money, those tails add up. Split a ₹1,000 bill three ways, convert it, add a little GST, repeat across thousands of transactions and a few years of history, and balances start drifting by a paisa here and a rupee there. Worse, two screens can show two different totals for the same thing. Once that happens, you stop trusting the app — and a finance app you do not trust is useless.

This post explains the three rules Rovezi follows so that never happens.

Rule 1: whole units only

Rovezi never stores money as a decimal number. Every amount is an exact whole number in the currency’s smallest unit.

You see Rovezi stores
₹105.25 10,525 paise
₹1,00,000 1,00,00,000 paise
¥1,200 1,200 yen (the yen has no minor unit)

Integers add, subtract and compare exactly. There is no hidden tail to accumulate. When an amount arrives with a fraction the currency does not allow — say ₹10.255 — Rovezi rejects it rather than quietly rounding it. Silent rounding is how small errors get in.

What about splits that do not divide evenly?

Split ₹100 three ways and you get ₹33.333… per person, which no one can pay. Rovezi works in paise: the first share gets ₹33.34 and the other two get ₹33.33, so the shares always add back up to exactly ₹100.00. The app tells you where the odd paisa went, instead of letting it disappear.

Rule 2: every transaction balances

Behind each transaction is a set of postings — the double-entry idea accountants have used for centuries. Every posting moves an amount into or out of an account, and the postings for one transaction must add up to exactly zero.

Paying ₹500 for groceries from your bank account looks like this:

Posting Amount
Bank account −₹500.00
Groceries spending +₹500.00
Total ₹0.00

Paying your credit card bill is also balanced, but nothing is spent:

Posting Amount
Bank account −₹12,000.00
Credit card (the debt goes down) +₹12,000.00
Total ₹0.00

The database itself refuses any batch of postings that does not balance. That one constraint rules out a whole family of bugs: money cannot appear from nowhere or vanish into nowhere, and balances computed from different directions always agree.

Rule 3: corrections leave a trail

Mistakes happen. You entered ₹5,400 instead of ₹4,500, or picked the wrong card. In many apps, you just edit the number and the old value is gone.

Rovezi treats financial history as append-only. A wrong entry is reversed — an equal and opposite set of postings is added, with a reason — and the correct entry is posted in its place. The reversal is dated to the original, so last month’s report is fixed too, but you can always see what changed and why.

This matters more than it sounds. When you share balances with a flatmate, or look back at what a renovation really cost, a visible correction trail is the difference between “trust me” and “here is exactly what happened”.

Why this matters for you, not just for engineers

You will probably never look at a posting. But you will notice the results:

  • Totals agree everywhere. Your dashboard, your account page and your reports add up to the same paisa.
  • Shared balances are fair. When you split costs with friends or family, nobody is out by a rupee because of rounding.
  • Card payments are not double counted. Because a bill payment is a balanced transfer, it never shows up as extra spending. (More on that in your credit card limit is not money you have.)
  • History is trustworthy. Nothing is silently rewritten.

How Rovezi helps

These rules are built into Rovezi’s ledger rather than added on top. Every rupee in your accounts, cards, people balances and projects comes from the same exact, balanced postings. You can read more about how we look after your data on our security page, or see everything else Rovezi does on the features page.

Rovezi is free during early access — create your account from the box below.

Example amounts in this article are fictitious.

Share this post

All posts