Multi-currency minor units: why we never use floats
Avoiding floating-point errors in invoices and reports by using integer minor units for USD, GBP, EUR, DZD, and CAD.
By Sanad team
- engineering
- money
Invoices are legal and financial artifacts. Small rounding errors compound across taxes, discounts, and line totals, so Sanad never stores money as floats.
Minor units
Amounts are stored as integers in the smallest currency unit (cents, centimes, fils, etc.). Display layers format values for humans; the ledger stays exact.
Supported currencies
Sanad supports USD, GBP, EUR, DZD, and CAD for organization defaults and product line items. The same rules apply everywhere: one integer, one ISO currency code per amount.
Reports and exports
When you export or sync data, you get consistent figures that match your documents, without “0.01 off” surprises after reconciliation.