Blog

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.

Cookie preferences

We use cookies to improve your experience and (optionally) enable analytics.