documentation

ADR-0018 — bcmath / brick/math pour le calcul monétaire

StatutAccepté
Date2025-09-05
AuteursJulien Jorry

Contexte

Le type float de PHP (IEEE 754) perd des centimes sur des additions répétées : 0.1 + 0.2 = 0.30000000000000004. Une MLCC ne peut pas se permettre la moindre perte ou création silencieuse de monnaie due à un arrondi flottant.

Décision

Tous les montants sont en BigDecimal (chaîne via brick/math ou bcmath) à travers les services. En base, colonnes DECIMAL(15,2). PHPStan refuse float sur toute variable nommée $amount*, $balance*, $montant*.

Conséquences positives

Conséquences négatives

Alternatives examinées

Références