---
name: financial-precision-decimal
description: Usa Decimal ou inteiro em centavos pra dinheiro; nunca float
roles: [dev, qa]
---
Valor monetário nunca em `float`/`double`.

- Python: `Decimal` (`from decimal import Decimal, ROUND_HALF_EVEN`).
- JS/TS: `BigInt` em centavos OU `Decimal.js` / `dinero.js`.
- SQL: `numeric(precision, scale)` (ex: `numeric(15, 2)` pra BRL).
- Arredondamento sempre explícito: bancário usa `ROUND_HALF_EVEN`.

Testes obrigatórios:
- `Decimal("0.10") + Decimal("0.20") == Decimal("0.30")` (com float seria 0.30000000000000004).
- Cenário de troco e arredondamento de juros.
