kmp-money

Installation
SKILL.md

Money in KMP (commonMain)

Cardinal rule

  • Never use Double/Float for money. Binary floating point cannot represent 0.10; sums drift and rounding is undefined. This applies to storage, arithmetic, serialization, and equality.
  • java.math.BigDecimal is JVM-only — unavailable in commonMain. That is why KMP needs either integer minor units or a multiplatform bignum.
  • Pick one representation and keep it at the boundary:
    • Minor units (Long cents) — simplest, exact, fast. Good default for a fintech ledger where every currency has a fixed exponent. Watch for overflow on very large aggregates and awkward sub-cent intermediate math (interest, FX).
    • Arbitrary-precision decimal — use com.ionspin.kotlin:bignum when you need sub-minor-unit precision, FX rates, or percentages. Pure-Kotlin BigDecimal, works on Android + iOS + JS/Wasm.

Dependencies

Installs
4
GitHub Stars
12
First Seen
Aug 23, 2026
kmp-money — talissonvitorino/kmp-ios-skills