Math Challenge
Más

Internationalizing Math Notation: Numbers, Symbols, and Long Division Across Five Languages

mc-34 · Publicado: · de Math Challenge Research · 4233 palabras · 14 fuentes citadas

Resumen ejecutivo

La notación matemática no es universal y varía en formas que rompen un tutor ingenuo. El separador decimal es coma en es-ES/fr-FR/pt-PT/de-DE pero punto en en-US/en-GB y en es-MX — Mexico es la excepción dentro del mundo hispanohablante [1]. El BIPM recomienda desde 1948 (reafirmado en 2003) usar espacios finos para agrupar millares y deja abierta la elección entre coma o punto como marcador decimal — no hay "la" convención correcta [1]. El algoritmo de la división larga se dibuja distinto en cada país: EE. UU./Reino Unido usan el tablero con "casita" (⟌) y el cociente arriba; Francia, España y Portugal usan la "potencia" con el divisor a la derecha separado por una barra vertical y el cociente abajo; Alemania escribe una ecuación horizontal 127 : 4 = 31,75; México usa el formato anglosajón pero sin escribir los pasos de resta explícitos (cálculo mental); Brasil, a diferencia del resto de Latinoamérica, adopta el formato europeo [5]. Esto rompe directamente cualquier tutor de "pasos" que asuma un solo layout. La escala numérica también difiere: EE. UU., Reino Unido (desde 1974) y Brasil usan escala corta (billón = 10⁹); España, México, Francia, Alemania y Portugal usan escala larga (billón = 10¹²) [2][3]. La estructura de las palabras numéricas también varía: el alemán invierte unidades y decenas ("einundzwanzig" = uno-y-veinte = 21), el francés usa base vigesimal para 70/80/90 ("soixante-dix", "quatre-vingt-dix", con "septante/nonante" en Bélgica y Suiza) [7], y el español tiene formas fusionadas ("dieciséis") frente a las históricas separadas ("diez y seis"). La investigación de Miura, Fuson y colegas muestra que los sistemas de palabras numéricas regulares del este asiático (chino/japonés/coreano) dan una ventaja temprana de conteo y comprensión del valor posicional frente al inglés y otras lenguas irregulares [11][12][13][14]. La implicación de diseño central: los ítems matemáticos deben almacenarse como un árbol de sintaxis abstracta (AST) estructurado, nunca como texto ya renderizado, y toda localización (separador decimal, símbolo de división, layout de división larga, nombre de escala) debe aplicarse en el límite de renderizado, no en el contenido.

337 palabras

Este documento se escribió en inglés; su resumen ejecutivo también existe en español, y esa es la versión de arriba. El cuerpo de abajo es el original en inglés — no está traducido, y no se ofrece una traducción automática en su lugar.

Estado de verificación

Este documento no lleva ninguna marca [unverified]. Cada afirmación está atada a una fuente numerada de abajo.

[unverified] quiere decir que la afirmación está en la investigación pero no se confirmó contra una fuente primaria en la sesión que la produjo. Se publica en vez de borrarse, porque un corpus que esconde sus huecos no es verificable.

Cómo se produjo esta investigación

Los 47 documentos se hicieron el 2026-07-31 por agentes independientes, cada uno con instrucción explícita de no inventar citas y de marcar como [unverified] lo que no pudiera confirmar contra una fuente primaria. La cuota de búsqueda web de la sesión se agotó a media investigación y los agentes posteriores trabajaron por descarga directa contra fuentes primarias. Varios sitios (ftc.gov, ico.org.uk) bloquean la descarga automatizada, y por eso ciertas afirmaciones legales están marcadas a propósito.

Notation matrix

Conventionen-USen-GBes-MXes-ESfr-FRpt-BRpt-PTde-DESource
Decimal separator...,,,,,[1]
Digit grouping separator (common practice), (1,234,567),,. (1.234.567)space/. (1 234 567)...[1]
BIPM-recommended groupingthin spacethin spacethin spacethin spacethin spacethin spacethin spacethin space[1]
List separator when comma is decimal,,,; (to avoid clash);;;;[1], general practice
Division symbol taught÷ then /÷ then /÷÷ / ::÷÷ / ::[5][6]
Multiplication symbol taught×××××××· (dot)[6]
Long-division layoutUS tableau, bracket, quotient on topUS tableauAnglo layout, mental subtraction“potence”: divisor right of ``, quotient below“potence”: divisor right of ``, quotient belowEuropean: divisor right of ``, quotient below
Interval, open(0,1)(0,1)(0,1)(0,1)]0,1[ (school-taught)(0,1)(0,1)/]0,1[ (varies)(0,1) (also ]0,1[ in some curricula)[4]
Interval, half-open[0,1)[0,1)[0,1)[0,1)[0,1[[0,1)[0,1)/[0,1[[0,1)/[0,1[[4]
Scale name for 10⁹billionbillion (since 1974)mil millonesmil millonesmilliardbilhão (short-scale exception)mil milhõesMilliarde[2][3]
Scale name for 10¹²trilliontrillionbillónbillónbilliontrilhãobiliãoBillion[2][3]
Teen-number structureregular (thirteen–nineteen irregular in EN too)samedieciséis (fused)dieciséis (fused)seize (opaque root)dezesseisdezasseissechzehn (regular, but 21 = “einundzwanzig”, inverted)[7], general knowledge (marked unverified for exact RAE dating)
70/80/90 word structureregular (seventy/eighty/ninety)samesetenta/ochenta/noventa (regular)samesoixante-dix/quatre-vingts/quatre-vingt-dix (BE/CH: septante/nonante)setenta/oitenta/noventa (regular)samesiebzig/achtzig/neunzig (regular)[7]
CLDR plural categoriesone, otherone, otherone, many, otherone, many, otherone, many, otherone, many, otherone, many, otherone, other[8][9]

Note: the interval-notation row for pt-PT/de-DE is marked “varies” because curricula differ by textbook/region and the Wikipedia source [4] documents the existence of the reversed-bracket (Bourbaki) convention without giving a country-by-country adoption table; treat as directionally correct, not independently confirmed for every named locale.

Findings

1. Decimal marker: BIPM/ISO position, and why Mexico is the outlier

The 22nd General Conference on Weights and Measures (2003) states the decimal marker “shall be either the point on the line or the comma on the line” — both are equally valid under SI [1]. ISO 80000-1 repeats this neutrality, though ISO/IEC editorial directives use the comma in the standards’ own text [1]. Digit grouping is a separate question: BIPM policy since 1948 (reaffirmed 2003) recommends a thin space for grouping thousands (e.g. 20 000, 1 000 000), specifically to avoid the comma/point ambiguity entirely [1]. In practice almost nobody in consumer software follows the thin-space recommendation; countries instead flip whichever symbol isn’t already their decimal marker into the grouping role — comma-decimal countries (Spain, France, Germany, Brazil, Portugal) use the point for grouping, and point-decimal countries (US, UK, Mexico, Canada-English) use the comma [1]. Mexico uses the point, unlike Spain, despite both being Spanish-speaking [1] — this is a documented split within the same language family and the single most likely place a “es” locale fallback breaks silently.

2. Comma-as-list-separator collision

Where the decimal marker is a comma, using comma as a list/argument separator is ambiguous (3,5 could be “3.5” or “the list 3, 5”). The conventional fix in comma-decimal locales is to use a semicolon as the list/argument separator (spreadsheet formulas in fr-FR/de-DE/es-ES do exactly this) [1, general practice]. This matters directly for any UI string that lists numeric values inline, and for CSV-like exports where a naive comma-joined string of decimal numbers is unparseable in a comma-decimal locale.

3. Division and multiplication symbols

English-speaking arithmetic instruction uses ÷; French and German instruction commonly use the colon : for division, consistent with the long-division layout below [5][6]. For multiplication, Germany’s educational convention favors the dot operator · over ×, in part because × visually resembles the letter x used as a variable, and in part because a raised dot doesn’t collide with the German comma-as-decimal when writing a·b next to decimal numbers [6]. The asterisk * is a computing-era convention (ASCII lacked ×) and is not a taught classroom symbol anywhere in our five languages [6] — it should appear only in code/input contexts (e.g., a calculator-style input field), never in rendered instructional content.

4. Long division layout — the single highest-risk item for a step-by-step tutor

Wikipedia’s long-division article documents at least four structurally different layouts relevant to our locales [5]:

A tutor that shows “steps” for long division cannot use one hardcoded visual template — it needs at minimum four distinct renderers (US/UK, potence/European, German equation, Mexican-sparse) selected by locale, not by language.

5. Interval notation

ISO 31-11 documents two valid conventions for excluding an endpoint: replacing the bracket with a parenthesis ((0,1), [0,1)), or reversing the bracket (]0,1[, [0,1[) [4]. The reversed-bracket form was introduced by the Bourbaki collective (French) and is the form taught in French (and, per general knowledge not independently confirmed in the fetched text, Belgian) secondary curricula; the parenthesis form dominates English-, Spanish-, and Portuguese-language instruction, and German curricula use both depending on textbook [4]. This is a case where the “correct” rendering is a per-locale (sometimes per-curriculum) flag rather than a fixed mapping from language code.

6. Long scale vs short scale — five languages, five/six answers

The short scale (billion = 10⁹, each new term ×1,000) is used by the US always, and by the UK since a 1974 government decision publicly announced by PM Harold Wilson adopting “billion = 1,000 million” as the international/American convention [2]. The long scale (billion = 10¹², milliard/mil millones/mil milhões = 10⁹ as the intermediate term) is used by France (which reverted to long scale in 1948 after having originally popularized the short scale worldwide) [3], Spain and Mexico (long scale; “mil millones” is the everyday term for 10⁹ rather than a native “billón”-adjacent word) [2], Germany (Milliarde = 10⁹, Billion = 10¹²) [2][3], and Portugal (bilião = 10¹², mil milhões = 10⁹) [2]. Brazil is the outlier within Portuguese: unlike Portugal, Brazilian Portuguese uses the short scale — “bilhão” = 10⁹ [2]. So across our five languages/eight locales, the short-scale group is {en-US, en-GB, pt-BR} and the long-scale group is {es-MX, es-ES, fr-FR, pt-PT, de-DE} — the split runs through both English and Portuguese, not along language lines.

7. Number-word structure and its effect on learning to count

Three structural (not merely lexical) differences matter for early counting UI and TTS scripts:

The learning-science stakes of this are established in the cognitive-development literature: East Asian languages (Chinese, Japanese, Korean) construct number words with fully transparent base-10 structure (13 as “ten-three” rather than “thirteen”), and cross-national comparisons (Miura and colleagues, comparing China, France, Japan, Korea, Sweden, and the US) found this transparency correlates with stronger early place-value understanding and mental base-10 representations of number in young children [11][12]. A more recent line of work specifically tests and partially complicates the strength of this “language account,” finding the effect real but modulated by other instructional factors [13][14]. The practical takeaway for Math Challenge: German, French, and Spanish counting exercises in the youngest age band cannot be produced by literally translating an English or Chinese-style counting sequence — the counting words themselves encode different structure, so counting-sequence content must be authored natively per language, including the irregular ranges, not machine-translated.

8. Plural rules (CLDR) and German text expansion

CLDR plural categories are not binary “singular/plural” — they are a locale-defined set of grammatical buckets keyed by numeric properties of the operand (integer/decimal, trailing digits, magnitude), and the count of categories differs by language: English and German use two categories (one, other), each triggered specifically by i = 1 and v = 0 (an integer value of exactly 1, no visible decimal digits) [9]. French, Spanish, and Portuguese use three categories (one, many, other); notably in these languages the one category also covers 0 in some rule sets (French: i = 0,1), meaning “0 items” pluralizes like “1 item” rather than like “5 items” — the opposite of English’s default assumption that anything not exactly 1 is plural [9]. Any UI string with a count (“You solved {n} problems”) must route through ICU MessageFormat/Intl.PluralRules rather than a hardcoded n === 1 ? singular : plural check, or French/Spanish/Portuguese zero-count strings will read ungrammatically. Separately, German is well known to run 20–35% longer than English for equivalent UI strings due to compounding — this is a general, widely-documented localization fact rather than something re-confirmed via a specific fetch this session, and should be treated as a layout-budget constraint (test with pseudo-localization, not just real German copy, since German strings can spike far longer than the average on specific compound terms).

9. TTS voice availability per locale

This is an engineering/vendor-inventory question rather than a linguistics one, and could not be resolved with a citable, current source in this session (browser SpeechSynthesis.getVoices() coverage is OS/browser-dependent and changes without a stable canonical reference; Cloudflare Workers AI’s melotts model’s language list and any third-party TTS vendor’s locale/voice matrix need to be checked directly against the vendor’s current model card at implementation time, not assumed from this report). Flag as unverified and requiring a direct check against whichever TTS vendor is chosen, with particular attention to whether pt-BR and pt-PT get distinct voices (they often don’t) and whether es-MX and es-ES get distinct voices (increasingly yes, but not universally).

10. Intl.NumberFormat / Intl.PluralRules capabilities

Intl.NumberFormat natively handles decimal/grouping separator selection, digit script (e.g. Arabic-indic digits), and style: "unit"/"currency"/"percent" formatting per BCP-47 locale tag, and exposes formatToParts() for building custom-styled output and formatRange() for interval-like display [10]. It is locale-output aware but says nothing about locale-input parsing — there is no Intl.NumberFormat.parse(); parsing locale-formatted user input (a German child typing “3,5”) has to be handled by application code, typically by using formatToParts() on a known value to discover the current locale’s decimal/group characters and then normalizing user input against that discovered mapping before calling Number()/parseFloat(). Intl.PluralRules (paired with CLDR data, see §8) resolves the plural category for a given number in a given locale and is the correct primitive to drive ICU MessageFormat-style pluralized strings.

Design implications

  1. Store items as a structured AST, not rendered text — verdict: AST. A math item (equation, interval, long-division problem) must be stored as a locale-agnostic semantic structure (operator, operands, precision, magnitude) and rendered to text/visuals only at the presentation boundary. Storing pre-rendered strings (e.g. “3,5 ÷ 2 = 1,75”) makes every locale a content fork; storing an AST makes locale a rendering parameter.
  2. Answer parsing must accept locale-correct decimal input. A German or French child typing “3,5” must be accepted as 3.5; an es-MX or en-US child typing “3.5” must also be accepted. Implement a locale-aware normalizer (discover the locale’s decimal/group characters via Intl.NumberFormat().formatToParts(), strip/convert accordingly) rather than a single global regex.
  3. Long division needs at least four distinct step-by-step renderers, selected by a locale (or explicit curriculum-region) setting, not by language code alone: US/UK tableau, France/Spain/Portugal/Brazil potence, Germany horizontal-equation, Mexico Anglo-sparse. Do not assume es implies one layout — es-MX and es-ES/Brazil diverge from each other on this axis.
  4. Division and multiplication symbols are a locale-configurable display preference, not part of the item’s semantic content. Store the operator as an abstract DIVIDE/MULTIPLY node; render as ÷/: and ×/· per locale/curriculum setting.
  5. Interval bracket style ((0,1) vs ]0,1[) is a per-locale/curriculum rendering flag, most relevantly for fr-FR (and possibly Belgian French), with de-DE and pt-PT ambiguous by curriculum — expose it as a configurable content-rendering setting rather than a hard per-language rule, and confirm with a native curriculum consultant before defaulting.
  6. Large-number naming must route through a locale-aware number-to-words function that distinguishes long vs. short scale, and specifically must NOT assume scale correlates with language: short-scale locales are {en-US, en-GB, pt-BR}; long-scale locales are {es-MX, es-ES, fr-FR, pt-PT, de-DE}. A shared “pt” number-namer will misname billions for either Brazil or Portugal.
  7. List/argument separators in generated strings must switch to semicolon (or Intl.ListFormat) in comma-decimal locales to avoid colliding with the decimal comma — any feature that renders a list of numbers inline (e.g., “possible answers: 2,5, 3,5, 4,5”) is actively ambiguous in fr/de/es-ES/pt without this.
  8. Count-sensitive UI strings must use ICU MessageFormat/Intl.PluralRules with the full CLDR category set per language, not an n===1 check — French/Spanish/Portuguese route 0 through the one-like category in some rule variants, which an English-first pluralization helper will get wrong.
  9. Reserve UI layout budget for German text expansion (roughly 20–35% longer than English on average, more on specific compounds) — validate layouts with pseudo-localization or actual long German strings, not just the English baseline, especially in constrained UI like buttons, badges, and mobile nav labels.
  10. Counting-sequence and number-word content for the youngest age band must be authored natively per language, not machine-translated, because German inversion, French vigesimal 70/80/90 (plus septante/nonante regional variants), and Spanish fused teens are structural differences in how numbers are spoken, not just vocabulary substitutions. A word-for-word translation of an English or Chinese-style counting exercise will teach the wrong spoken form.
  11. TTS voice coverage must be verified per locale before promising audio number-reading, with explicit attention to whether the chosen TTS vendor distinguishes es-MX from es-ES and pt-BR from pt-PT (this is unresolved in this report — flagged as an open item, see below) — build an explicit fallback matrix (e.g., pt-PT falls back to a pt-BR voice with a disclosed limitation) rather than silently mis-voicing a locale.
  12. Adopt Intl.NumberFormat / Intl.PluralRules / Intl.ListFormat as the enforcement layer for all locale-sensitive number/text rendering, keeping a canonical numeric value (e.g., a decimal string, BigInt, or fixed-point representation — not a locale-formatted string) as the single source of truth, localizing only at the render boundary and de-localizing immediately at the input boundary.
  13. Build a first-class “math locale config” table (decimal separator, grouping separator, list separator, division symbol, multiplication symbol, long-division layout key, number scale, interval bracket style) keyed by a locale-or-curriculum identifier, separate from ordinary UI-string i18n — standard gettext/ICU tooling handles plurals and string interpolation but has no native concept of “long division layout” or “number scale,” so this needs a custom, versioned, testable config alongside the translation files.
  14. Mixed-number vs. improper-fraction display conventions differ by country/curriculum (heavier emphasis on mixed numbers in US/UK primary curricula vs. more consistent improper-fraction use in some European traditions) — this was not independently confirmed with a citable source this session and should be validated directly with curriculum consultants per locale before hardcoding a default; treat as an open item, not a settled convention.
  15. Any spoken-number input/output feature (voice answer input, dictated-number exercises) must accept/produce both historically-attested word forms where they coexist (e.g., Spanish “dieciséis” vs. “diez y seis”) and correctly handle German’s spoken-order inversion when mapping a dictated number word to its digit form — this is a distinct parsing problem from typed decimal-separator normalization (implication 2) and needs its own locale-aware grammar, not a shared one.

Open questions for the project owner

Fuentes

  1. Wikipedia — Decimal separator
  2. Wikipedia — Long and short scales
  3. Wikipedia — Names of large numbers
  4. Wikipedia — Interval (mathematics)
  5. Wikipedia — Long division
  6. Wikipedia — Multiplication sign
  7. Omniglot — Numbers in French
  8. Unicode CLDR — Language Plural Rules chart
  9. CLDR spec — Plural Rules
  10. MDN — Intl.NumberFormat
  11. ResearchGate — "Language supports for mathematics understanding and performance."
  12. ResearchGate — Miura et al., "Comparisons of Children's Cognitive Representation of Number: China, France, Japan, Korea, Sweden, and the United States."
  13. ScienceDirect (edited volume chapter) — "Effects of mathematics language on children's learning."
  14. ScienceDirect — "Reexamining the language account of cross-national differences" in mathematics cognition

Preguntas que este documento le deja abiertas al dueño

Están sin responder a propósito. Se listan, no se resuelven — convertirlas en preguntas frecuentes obligaría a inventar respuestas que el documento no tiene.

Uno de 51 documentos de investigación, 168.346 palabras en total, contadas en el build sobre los archivos mismos. Leer este documento en el repositorio