Skip to content
Back to skills

Currency Localization

ASecurity

Display, store, and reason about money across currencies without rounding errors or implied conversions. Use when showing prices in more than one currency or storing monetary amounts.

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 5, 2026
ai-agentssql

Security analysis

A100/100

Scanned September 5, 2026

npx -y skills add Amey-Thakur/AI-SKILLS --skill currency-localization --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Currency Localization?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Currency Localization
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/amey-thakur-currency-localization/badge)](https://www.skillsdirectory.com/skills/amey-thakur-currency-localization)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: currency-localization
description: Display, store, and reason about money across currencies without rounding errors or implied conversions. Use when showing prices in more than one currency or storing monetary amounts.
---

# Currency localization

Money is not a number with a symbol in front. Currencies differ in
decimal places, symbol placement, and rounding conventions, and a
converted price is a different fact from the price you charged, so both
must be stored.

## Method

1. **Store the amount with its currency, always together.** A bare
   number is meaningless the moment a second currency exists, and
   retrofitting the currency later is guesswork.
2. **Never store money in floating point.** Use integer minor units or a
   decimal type. Floating point rounding on money produces discrepancies
   that accounting will find (see sql-date-time for a parallel
   precision trap).
3. **Respect each currency's minor unit.** Some have none and some have
   three, so assuming two decimals is wrong in both directions.
4. **Format with the locale, not with a symbol lookup.** Placement,
   spacing, and grouping come from locale data, and the same currency is
   written differently in different locales (see locale-formatting).
5. **Record the rate and time for any conversion.** A converted display
   price is derived and must be reproducible, so the rate used and when
   it was taken belong in the record.
6. **Decide rounding policy explicitly and apply it once.** Where
   rounding happens changes totals, and tax rules often dictate the
   answer rather than leaving it to preference.

## Boundaries

- Displaying a converted price is not a quote; the price actually
  charged depends on the payment provider's rate at capture.
- Tax, invoicing, and revenue recognition are regulated and belong to
  finance rather than to formatting.
- Currency data changes as currencies are introduced and redenominated,
  so it comes from a maintained source.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…