Iraqi Dinar (IQD): 3 decimal places
- ISO 4217 exponent
- 3
- Minor units per unit
- 1,000
- Intl display digits
- 0
- Symbol (en-US)
- IQD
Intl gets this one wrong for storage
Intl.NumberFormat resolves IQD to 0 fraction digits — CLDR’s display precision. The ISO 4217 exponent banks and processors store IQD at is 3. Read the integer 1234560 at Intl’s digits and it shows as 1,234,560; at the storage exponent it is 1,234.560. The library corrects this in one table, so every component formats IQD at 3 decimal places.
IQD in a statement
The same integer in every state a statement can be in. Null is not zero: unknown renders as a dash, never as a zero amount.
| Value | Stored (minor units) | Statement | Money component |
|---|---|---|---|
| Positive | 1234560 | 1,234.560 | 1,234 Iraqi Dinar and 560 minor units |
| Negative | -1234560 | (1,234.560) | negative 1,234 Iraqi Dinar and 560 minor units |
| Zero | 0 | 0.000 | 0 Iraqi Dinar |
| Unknown (null) | null | — | not available |
Typing IQD
What a person types, and the integer it is stored as at IQD's exponent. Rounded once, at the end.
| Typed | Stored as |
|---|---|
| 1,234.56 | 1234560 |
| (1,234.56) | -1234560 |
| 1.2k | 1200000 |
| =1200+340*2 | 1880000 |
Split without losing a minor unit
100.000 IQD split three ways. Rounding each third leaves a remainder; largest-remainder allocation hands it out one minor unit at a time, so the parts always sum to the whole.
- 33.334
- 33.333
- 33.333
- = 100.000
On a check
One thousand two hundred thirty-four IQD and 560/1000 only
The fraction is over 1,000 because IQD has 3 decimal places. Write any amount in words.
IQD in React
The component reads the exponent from the currency code; you pass the integer and the code, never a float and never a decimal count.
import { Money } from "@/components/ledger/money";
// 1,234.560 IQD, stored as the integer 1234560
<Money accounting value={{ amount: 1234560, currency: "IQD" }} />Also stored at 3 decimal places
Work with it
Tools that read IQD at its own exponent.