Home | History | Annotate | Download | only in ldml
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      2 "http://www.w3.org/TR/html4/loose.dtd">
      3 <html>
      4 
      5 <head>
      6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      7 <meta http-equiv="Content-Language" content="en-us">
      8 <link rel="stylesheet" href="http://www.unicode.org/reports/reports.css"
      9 	type="text/css">
     10 <title>UTS #35: Unicode LDML: Numbers</title>
     11 <style type="text/css">
     12 <!--
     13 .dtd {
     14 	font-family: monospace;
     15 	font-size: 90%;
     16 	background-color: #CCCCFF;
     17 	border-style: dotted;
     18 	border-width: 1px;
     19 }
     20 
     21 .xmlExample {
     22 	font-family: monospace;
     23 	font-size: 80%
     24 }
     25 
     26 .blockedInherited {
     27 	font-style: italic;
     28 	font-weight: bold;
     29 	border-style: dashed;
     30 	border-width: 1px;
     31 	background-color: #FF0000
     32 }
     33 
     34 .inherited {
     35 	font-weight: bold;
     36 	border-style: dashed;
     37 	border-width: 1px;
     38 	background-color: #00FF00
     39 }
     40 
     41 .element {
     42 	font-weight: bold;
     43 	color: red;
     44 }
     45 
     46 .attribute {
     47 	font-weight: bold;
     48 	color: maroon;
     49 }
     50 
     51 .attributeValue {
     52 	font-weight: bold;
     53 	color: blue;
     54 }
     55 
     56 li, p {
     57 	margin-top: 0.5em;
     58 	margin-bottom: 0.5em
     59 }
     60 
     61 h2, h3, h4, table {
     62 	margin-top: 1.5em;
     63 	margin-bottom: 0.5em;
     64 }
     65 -->
     66 </style>
     67 </head>
     68 
     69 <body>
     70 
     71 	<table class="header" width="100%">
     72 		<tr>
     73 			<td class="icon"><a href="http://unicode.org"> <img
     74 					alt="[Unicode]" src="http://unicode.org/webscripts/logo60s2.gif"
     75 					width="34" height="33"
     76 					style="vertical-align: middle; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px; border-top-width: 0px;"></a>&nbsp;
     77 				<a class="bar" href="http://www.unicode.org/reports/">Technical
     78 					Reports</a></td>
     79 		</tr>
     80 		<tr>
     81 			<td class="gray">&nbsp;</td>
     82 		</tr>
     83 	</table>
     84 	<div class="body">
     85 		<h2 style="text-align: center">
     86 			Unicode Technical
     87 			Standard #35
     88 		</h2>
     89 		<h1 style="text-align: center">
     90 			Unicode Locale Data Markup Language (LDML)<br> Part 3: Numbers
     91 		</h1>
     92 
     93 		<!-- At least the first row of this header table should be identical across the parts of this UTS. -->
     94 		<table border="1" cellpadding="2" cellspacing="0" class="wide">
     95 			<tr>
     96 				<td>Version</td>
     97 				<td>34</td>
     98 			</tr>
     99 			<tr>
    100 				<td>Editors</td>
    101 				<td>John Emmons (<a href="mailto:emmo (a] us.ibm.com">emmo (a] us.ibm.com</a>)
    102 					and <a href="tr35.html#Acknowledgments">other CLDR committee
    103 						members</a></td>
    104 			</tr>
    105 		</table>
    106 
    107 		<p>
    108 			For the full header, summary, and status, see <a href="tr35.html">
    109 				Part 1: Core</a>
    110 		</p>
    111 
    112 		<h3>
    113 			<i>Summary</i>
    114 		</h3>
    115 		<p>
    116 			This document describes parts of an XML format (<i>vocabulary</i>)
    117 			for the exchange of structured locale data. This format is used in
    118 			the <a href="http://cldr.unicode.org/">Unicode Common Locale Data
    119 				Repository</a>.
    120 		</p>
    121 
    122 		<p>
    123 			This is a partial document, describing only those parts of the LDML
    124 			that are relevant for number and currency formatting. For the other
    125 			parts of the LDML see the <a href="tr35.html">main LDML document</a>
    126 			and the links above.
    127 		</p>
    128 
    129 		<h3>
    130 			<i>Status</i>
    131 		</h3>
    132 
    133 		<!-- NOT YET APPROVED 
    134 		<p>
    135 				<i class="changed">This is a<b><font color="#ff3333">
    136 				draft </font></b>document which may be updated, replaced, or superseded by
    137 				other documents at any time. Publication does not imply endorsement
    138 				by the Unicode Consortium. This is not a stable document; it is
    139 				inappropriate to cite this document as other than a work in
    140 				progress.
    141 			</i>
    142 		</p>
    143 		 END NOT YET APPROVED -->
    144 		<!-- APPROVED -->
    145 		<p>
    146 			<i>This document has been reviewed by Unicode members and other
    147 				interested parties, and has been approved for publication by the
    148 				Unicode Consortium. This is a stable document and may be used as
    149 				reference material or cited as a normative reference by other
    150 				specifications.</i>
    151 		</p>
    152 		<!-- END APPROVED -->
    153 
    154 		<blockquote>
    155 			<p>
    156 				<i><b>A Unicode Technical Standard (UTS)</b> is an independent
    157 					specification. Conformance to the Unicode Standard does not imply
    158 					conformance to any UTS.</i>
    159 			</p>
    160 		</blockquote>
    161 		<p>
    162 			<i>Please submit corrigenda and other comments with the CLDR bug
    163 				reporting form [<a href="tr35.html#Bugs">Bugs</a>]. Related
    164 				information that is useful in understanding this document is found
    165 				in the <a href="tr35.html#References">References</a>. For the latest
    166 				version of the Unicode Standard see [<a href="tr35.html#Unicode">Unicode</a>].
    167 				For a list of current Unicode Technical Reports see [<a
    168 				href="tr35.html#Reports">Reports</a>]. For more information about
    169 				versions of the Unicode Standard, see [<a href="tr35.html#Versions">Versions</a>].
    170 			</i>
    171 		</p>
    172 
    173 		<!-- This section of Parts should be identical in all of the parts of this UTS. -->
    174 		<h2>
    175 			<a name="Parts" href="#Parts">Parts</a>
    176 		</h2>
    177 		<p>The LDML specification is divided into the following parts:</p>
    178 		<ul class="toc">
    179 			<li>Part 1: <a href="tr35.html#Contents">Core</a> (languages,
    180 				locales, basic structure)
    181 			</li>
    182 			<li>Part 2: <a href="tr35-general.html#Contents">General</a>
    183 				(display names &amp; transforms, etc.)
    184 			</li>
    185 			<li>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a>
    186 				(number &amp; currency formatting)
    187 			</li>
    188 			<li>Part 4: <a href="tr35-dates.html#Contents">Dates</a> (date,
    189 				time, time zone formatting)
    190 			</li>
    191 			<li>Part 5: <a href="tr35-collation.html#Contents">Collation</a>
    192 				(sorting, searching, grouping)
    193 			</li>
    194 			<li>Part 6: <a href="tr35-info.html#Contents">Supplemental</a>
    195 				(supplemental data)
    196 			</li>
    197 			<li>Part 7: <a href="tr35-keyboards.html#Contents">Keyboards</a>
    198 				(keyboard mappings)
    199 			</li>
    200 		</ul>
    201 		<h2>
    202 			<a name="Contents" href="#Contents">Contents of Part 3, Numbers</a>
    203 		</h2>
    204 		<!-- START Generated TOC: CheckHtmlFiles -->
    205 		<ul class="toc">
    206 			<li>1 <a href="#Numbering_Systems">Numbering Systems</a></li>
    207 			<li>2 <a href="#Number_Elements">Number Elements</a>
    208 				<ul class="toc">
    209 					<li>2.1 <a href="#defaultNumberingSystem">Default
    210 							Numbering System</a></li>
    211 					<li>2.2 <a href="#otherNumberingSystems">Other Numbering
    212 							Systems</a></li>
    213 					<li>2.3 <a href="#Number_Symbols">Number Symbols</a></li>
    214 					<li>2.4 <a href="#Number_Formats">Number Formats</a>
    215 						<ul class="toc">
    216 							<li>2.4.1 <a href="#Compact_Number_Formats">Compact
    217 									Number Formats</a></li>
    218 							<li>2.4.2 <a href="#Currency_Formats">Currency Formats</a></li>
    219 						</ul>
    220 					</li>
    221 					<li>2.5 <a href="#Miscellaneous_Patterns">Miscellaneous
    222 							Patterns</a></li>
    223 				  <li>2.6 <a href="#Minimal_Pairs">Minimal Pairs</a></li>
    224 				</ul>
    225 			</li>
    226 			<li>3 <a href="#Number_Format_Patterns">Number Format
    227 					Patterns</a>
    228 				<ul class="toc">
    229 					<li>3.1 <a href="#Number_Patterns">Number Patterns</a>
    230 						<ul class="toc">
    231 							<li>Table: <a href="#Number_Pattern_Examples">Number
    232 									Pattern Examples</a></li>
    233 						</ul>
    234 					</li>
    235 					<li>3.2 <a href="#Special_Pattern_Characters">Special
    236 							Pattern Characters</a>
    237 						<ul class="toc">
    238 							<li>Table: <a href="#Number_Pattern_Character_Definitions">Number
    239 									Pattern Character Definitions</a></li>
    240 							<li>Table: <a href="#Sample_Patterns_and_Results">Sample
    241 									Patterns and Results</a></li>
    242 							<li>Table: <a href="#Examples_of_minimumGroupingDigits">Examples
    243 									of minimumGroupingDigits</a></li>
    244 							<li>3.2.1 <a href="#Explicit_Plus">Explicit Plus Signs</a></li>
    245 						</ul>
    246 					</li>
    247 					<li>3.3 <a href="#Formatting">Formatting</a></li>
    248 					<li>3.4 <a href="#sci">Scientific Notation</a></li>
    249 					<li>3.5 <a href="#sigdig">Significant Digits</a>
    250 						<ul class="toc">
    251 							<li>Table: <a href="#Significant_Digits_Examples">Significant
    252 									Digits Examples</a></li>
    253 						</ul>
    254 					</li>
    255 					<li>3.6 <a href="#Padding">Padding</a></li>
    256 					<li>3.7 <a href="#Rounding">Rounding</a></li>
    257 					<li>3.8 <a href="#Quoting_Rules">Quoting Rules</a></li>
    258 				</ul>
    259 			</li>
    260 			<li>4 <a href="#Currencies">Currencies</a>
    261 				<ul class="toc">
    262 					<li>4.1 <a href="#Supplemental_Currency_Data">Supplemental
    263 							Currency Data</a></li>
    264 				</ul>
    265 			</li>
    266 			<li>5 <a href="#Language_Plural_Rules">Language Plural Rules</a>
    267 				<ul class="toc">
    268 					<li>5.1 <a href="#Plural_rules_syntax">Plural rules syntax</a>
    269 						<ul class="toc">
    270 							<li>5.1.1 <a href="#Operands">Operands</a>
    271 								<ul class="toc">
    272 									<li>Table: <a href="#Plural_Operand_Meanings">Plural
    273 											Operand Meanings</a></li>
    274 									<li>Table: <a href="#Plural_Operand_Examples">Plural
    275 											Operand Examples</a></li>
    276 								</ul>
    277 							</li>
    278 							<li>5.1.2 <a href="#Relations">Relations</a>
    279 								<ul class="toc">
    280 									<li>Table: <a href="#Relations_Examples">Relations
    281 											Examples</a></li>
    282 									<li>Table: <a href="#Plural_Rules_Examples">Plural
    283 											Rules Examples</a></li>
    284 								</ul>
    285 							</li>
    286 							<li>5.1.3 <a href="#Samples">Samples</a>
    287 								<ul class="toc">
    288 									<li>Table: <a href="#Plural_Samples_Examples">Plural
    289 											Samples Examples</a></li>
    290 								</ul>
    291 							</li>
    292 							<li>5.1.4 <a href="#Using_cardinals">Using Cardinals</a></li>
    293 						</ul>
    294 					</li>
    295 					<li>5.2 <a href="#Plural_Ranges">Plural Ranges</a></li>
    296 				</ul>
    297 			</li>
    298 			<li>6 <a href="#Rule-Based_Number_Formatting">Rule-Based
    299 					Number Formatting</a></li>
    300 			<li>7 <a href="#Parsing_Numbers">Parsing Numbers</a></li>
    301 		</ul>
    302 		<!-- END Generated TOC: CheckHtmlFiles -->
    303 		<h2>
    304 			<a name="Numbering_Systems" href="#Numbering_Systems">1 Numbering
    305 				Systems</a>
    306 		</h2>
    307 		<p class="dtd">
    308 			&lt;!ELEMENT numberingSystems ( numberingSystem* ) &gt;<br>
    309 			&lt;!ELEMENT numberingSystem EMPTY &gt;<br> &lt;!ATTLIST
    310 			numberingSystem id NMTOKEN #REQUIRED &gt;<br> &lt;!ATTLIST
    311 			numberingSystem type ( numeric | algorithmic ) #REQUIRED &gt;<br>
    312 			&lt;!ATTLIST numberingSystem radix NMTOKEN #IMPLIED &gt;<br>
    313 			&lt;!ATTLIST numberingSystem digits CDATA #IMPLIED &gt;<br>
    314 			&lt;!ATTLIST numberingSystem rules CDATA #IMPLIED &gt;<br>
    315 		</p>
    316 		<p>
    317 			Numbering systems information is used to define different
    318 			representations for numeric values to an end user. Numbering systems
    319 			are defined in CLDR as one of two different types: algorithmic and
    320 			numeric. Numeric systems are simply a decimal based system that uses
    321 			a predefined set of digits to represent numbers. Examples are Western
    322 			( ASCII digits ), Thai digits, Devanagari digits. Algorithmic systems
    323 			are more complex in nature, since the proper formatting and
    324 			presentation of a numeric quantity is based on some algorithm or set
    325 			of rules. Examples are Chinese numerals, Hebrew numerals, or Roman
    326 			numerals. In CLDR, the rules for presentation of numbers in an
    327 			algorithmic system are defined using the RBNF syntax described in <i><a
    328 				href="#Rule-Based_Number_Formatting">Section 6: Rule-Based
    329 					Number Formatting</a></i>.
    330 		</p>
    331 		<p>Attributes for the &lt;numberingSystem&gt; element are as
    332 			follows:</p>
    333 		<blockquote>
    334 			<p>
    335 				<span class="attribute">id</span> - Specifies the name of the
    336 				numbering system that can be used to designate its use in
    337 				formatting.
    338 			</p>
    339 			<p>
    340 				<span class="attribute">type</span> - Specifies whether the
    341 				numbering system is algorithmic or numeric.
    342 			</p>
    343 			<p>
    344 				<span class="attribute">digits</span> - For numeric systems,
    345 				specifies the digits used to represent numbers, in order, starting
    346 				from zero.
    347 			</p>
    348 			<p>
    349 				<span class="attribute">rules</span> - Specifies the RBNF ruleset to
    350 				be used for formatting numbers from this numbering system. The rules
    351 				specifier can contain simply a ruleset name, in which case the
    352 				ruleset is assumed to be found in the rule set grouping
    353 				&quot;NumberingSystemRules&quot;. Alternatively, the specifier can
    354 				denote a specific locale, ruleset grouping, and ruleset name,
    355 				separated by slashes.
    356 			</p>
    357 		</blockquote>
    358 		<p>Examples:</p>
    359 		<pre>&lt;numberingSystem id=&quot;latn&quot; type=&quot;numeric&quot; digits=&quot;0123456789&quot;/&gt;
    360 &lt;!-- ASCII digits - A numeric system --&gt;</pre>
    361 		<pre>&lt;numberingSystem id=&quot;thai&quot; type=&quot;numeric&quot; digits=&quot;&quot;/&gt;
    362 &lt;!-- A numeric system using Thai digits --&gt;</pre>
    363 		<pre>&lt;numberingSystem id=&quot;geor&quot; type=&quot;algorithmic&quot; rules=&quot;georgian&quot;/&gt;
    364 &lt;!-- An algorithmic system - Georgian numerals , rules found in NumberingSystemRules --&gt;</pre>
    365 		<pre>&lt;numberingSystem id=&quot;hant&quot; type=&quot;algorithmic&quot; rules=&quot;zh_Hant/SpelloutRules/spellout-cardinal&quot;/&gt;
    366 &lt;!-- An algorithmic system. Traditional Chinese Numerals --&gt;
    367 </pre>
    368 		For general information about the numbering system data, including the
    369 		BCP47 identifiers, see the main document <em>Section Q.1.1 <a
    370 			href="tr35.html#Numbering System Data">Numbering System Data</a>.
    371 		</em> ) &gt;<br>
    372 		<h2>
    373 			<a name="Number_Elements" href="#Number_Elements">2 Number
    374 				Elements</a>
    375 		</h2>
    376 		<p class="dtd">&lt;!ELEMENT numbers ( alias | ( defaultNumberingSystem*, otherNumberingSystems*, minimumGroupingDigits*, symbols*, decimalFormats*, scientificFormats*, percentFormats*, currencyFormats*, currencies?, miscPatterns*, minimalPairs*, special* ) ) &gt;</p>
    377 		<p>
    378 			The numbers element supplies information for formatting and parsing
    379 			numbers and currencies. It has the following sub-elements:
    380 			&lt;defaultNumberingSystem&gt;, &lt;otherNumberingSystems&gt;,
    381 			&lt;symbols&gt;, &lt;decimalFormats&gt;, &lt;scientificFormats&gt;,
    382 			&lt;percentFormats&gt;, &lt;currencyFormats&gt;, and
    383 			&lt;currencies&gt;. The currency IDs are from [<a
    384 				href="tr35.html#ISO4217">ISO4217</a>] (plus some additional
    385 			common-use codes). For more information, including the pattern
    386 			structure, see <i><a href="#Number_Format_Patterns">Section
    387 					3: Number Format Patterns</a></i>.
    388 		</p>
    389 		<h3>
    390 			2.1 <a name="defaultNumberingSystem" href="#defaultNumberingSystem">Default
    391 				Numbering System</a>
    392 		</h3>
    393 		<p>
    394 			<span class="dtd">&lt;!ELEMENT defaultNumberingSystem (
    395 				#PCDATA )&gt;</span>
    396 		</p>
    397 		<p>This element indicates which numbering system should be used
    398 			for presentation of numeric quantities in the given locale.</p>
    399 		<h3>
    400 			2.2 <a name="otherNumberingSystems" href="#otherNumberingSystems">Other
    401 				Numbering Systems</a>
    402 		</h3>
    403 		<p>
    404 			<span class="dtd">&lt;!ELEMENT otherNumberingSystems ( alias |
    405 				( native*, traditional*, finance*)) &gt;</span>
    406 		</p>
    407 		<p>This element defines general categories of numbering systems
    408 			that are sometimes used in the given locale for formatting numeric
    409 			quantities. These additional numbering systems are often used in very
    410 			specific contexts, such as in calendars or for financial purposes.
    411 			There are currently three defined categories, as follows:</p>
    412 		<dl>
    413 			<dt>
    414 				<b>native</b>
    415 			</dt>
    416 			<dd>Defines the numbering system used for the native digits,
    417 				usually defined as a part of the script used to write the language.
    418 				The native numbering system can only be a numeric positional
    419 				decimal-digit numbering system, using digits with
    420 				General_Category=Decimal_Number. Note: In locales where the native
    421 				numbering system is the default, it is assumed that the numbering
    422 				system "latn" ( Western Digits 0-9 ) is always acceptable, and can
    423 				be selected using the -nu keyword as part of a Unicode locale
    424 				identifier.</dd>
    425 			<dt>
    426 				<b>traditional</b>
    427 			</dt>
    428 			<dd>Defines the traditional numerals for a locale. This
    429 				numbering system may be numeric or algorithmic. If the traditional
    430 				numbering system is not defined, applications should use the native
    431 				numbering system as a fallback.</dd>
    432 			<dt>
    433 				<b>finance</b>
    434 			</dt>
    435 			<dd>Defines the numbering system used for financial quantities.
    436 				This numbering system may be numeric or algorithmic. This is often
    437 				used for ideographic languages such as Chinese, where it would be
    438 				easy to alter an amount represented in the default numbering system
    439 				simply by adding additional strokes. If the financial numbering
    440 				system is not specified, applications should use the default
    441 				numbering system as a fallback.</dd>
    442 		</dl>
    443 		<p>The categories defined for other numbering systems can be used
    444 			in a Unicode locale identifier to select the proper numbering system
    445 			without having to know the specific numbering system by name. For
    446 			example:</p>
    447 		<ul>
    448 			<li>To select Hindi language using the native digits for numeric
    449 				formatting, use locale ID: "hi-IN-u-nu-native".</li>
    450 			<li>To select Chinese language using the appropriate financial
    451 				numerals, use locale ID: "zh-u-nu-finance".</li>
    452 			<li>To select Tamil language using the traditional Tamil
    453 				numerals, use locale ID: "ta-u-nu-traditio".</li>
    454 			<li>To select Arabic language using western digits 0-9, use
    455 				locale ID: "ar-u-nu-latn".</li>
    456 		</ul>
    457 		<p>
    458 			For more information on numbering systems and their definitions, see
    459 			<i><a href="#Numbering_Systems">Section 1: Numbering Systems</a></i>.
    460 		</p>
    461 
    462 		<h3>
    463 			2.3 <a name="Number_Symbols" href="#Number_Symbols">Number
    464 				Symbols</a>
    465 		</h3>
    466 		<p class="dtd">&lt;!ELEMENT symbols (alias | (decimal*, group*,
    467 			list*, percentSign*, nativeZeroDigit*, patternDigit*, plusSign*,
    468 			minusSign*, exponential*, superscriptingExponent*, perMille*,
    469 			infinity*, nan*, currencyDecimal*, currencyGroup*, timeSeparator*,
    470 			special*)) &gt;</p>
    471 		<p>
    472 			Number symbols define the localized symbols that are commonly used
    473 			when formatting numbers in a given locale. These symbols can be
    474 			referenced using a number formatting pattern as defined in <i><a
    475 				href="#Number_Format_Patterns">Section 3: Number Format Patterns</a></i>.
    476 		</p>
    477 		<p>The available number symbols are as follows:</p>
    478 		<dl>
    479 			<dt>
    480 				<b>decimal</b>
    481 			</dt>
    482 			<dd>- separates the integer and fractional part of the number.</dd>
    483 			<dt>
    484 				<b>group</b>
    485 			</dt>
    486 			<dd>
    487 				- separates clusters of integer digits to make large numbers more
    488 				legible; commonly used for thousands (grouping size 3, e.g.
    489 				&quot;100,000,000&quot;) or in some locales, ten-thousands (grouping
    490 				size 4, e.g. &quot;1,0000,0000&quot;). There may be two different
    491 				grouping sizes: The <em>primary grouping size</em> used for the
    492 				least significant integer group, and the <em>secondary grouping
    493 					size</em> used for more significant groups; these are not the same in
    494 				all locales (e.g. &quot;12,34,56,789&quot;). If a pattern contains
    495 				multiple grouping separators, the interval between the last one and
    496 				the end of the integer defines the primary grouping size, and the
    497 				interval between the last two defines the secondary grouping size.
    498 				All others are ignored, so &quot;#,##,###,####&quot; ==
    499 				&quot;###,###,####&quot; == &quot;##,#,###,####&quot;.
    500 			</dd>
    501 			<dt>
    502 				<b>list</b>
    503 			</dt>
    504 			<dd>
    505 				- symbol used to separate numbers in a list intended to represent
    506 				structured data such as an array; must be different from the <b>decimal</b>
    507 				value. This list separator is for non-linguistic usage as opposed
    508 				to the listPatterns for linguistic lists (e.g. Bob, Carol, and
    509 				Ted) described in Part 2, <em>Section 11 <a
    510 					href="tr35-general.html#ListPatterns">List Patterns</a></em>.
    511 			</dd>
    512 			<dt>
    513 				<b>percentSign</b>
    514 			</dt>
    515 			<dd>- symbol used to indicate a percentage (1/100th) amount. (If
    516 				present, the value is also multiplied by 100 before formatting. That
    517 				way 1.23  123%)</dd>
    518 			<dt>
    519 				<b>nativeZeroDigit</b>
    520 			</dt>
    521 			<dd>- Deprecated - do not use.</dd>
    522 			<dt>
    523 				<b>patternDigit</b>
    524 			</dt>
    525 			<dd>
    526 				- Deprecated. This was formerly used to provide the localized
    527 				pattern character corresponding to '#', but localization of the
    528 				pattern characters themselves has been deprecated for some time
    529 				(determining the locale-specific <em>replacements</em> for pattern
    530 				characters is of course not deprecated and is part of normal number
    531 				formatting).
    532 			</dd>
    533 			<dt>
    534 				<b>minusSign</b>
    535 			</dt>
    536 			<dd>- Symbol used to denote negative value.</dd>
    537 			<dt>
    538 				<b>plusSign</b>
    539 			</dt>
    540 			<dd>- Symbol used to denote positive value. &nbsp;It can be used
    541 				to produce modified patterns, so that 3.12 is formatted as "+3.12",
    542 				for example. The standard number patterns (except for
    543 				type="accounting") will contain the minusSign, explicitly or
    544 				implicitly. In the explicit pattern, the value of the plusSign can
    545 				be substituted for the value of the minusSign to produce a pattern
    546 				that has an explicit plus sign.</dd>
    547 			<dt>
    548 				<b>exponential</b>
    549 			</dt>
    550 			<dd>- Symbol separating the mantissa and exponent values.</dd>
    551 			<dt>
    552 				<b>superscriptingExponent</b>
    553 			</dt>
    554 			<dd>
    555 				- (Programmers are used to the fallback exponent style 1.23E4, but
    556 				that should not be shown to end-users. Instead, the exponential
    557 				notation superscriptingExponent should be used to show a format like
    558 				1.23  10<sup>4</sup>. ) The superscripting can use markup, such
    559 				as &lt;sup&gt;4&lt;/sup&gt; in HTML, or for the special case of
    560 				Latin digits, use the superscript characters: U+207B (  ), U+2070 (
    561 				 ), U+00B9 (  ), U+00B2 (  ), U+00B3 (  ), U+2074 (  ) ..
    562 				U+2079 (  ).
    563 			</dd>
    564 			<dt>
    565 				<b>perMille</b>
    566 			</dt>
    567 			<dd>- symbol used to indicate a per-mille (1/1000th) amount. (If
    568 				present, the value is also multiplied by 1000 before formatting.
    569 				That way 1.23  1230 [1/000])</dd>
    570 			<dt>
    571 				<b>infinity</b>
    572 			</dt>
    573 			<dd>- The infinity sign. Corresponds to the IEEE infinity bit
    574 				pattern.</dd>
    575 			<dt>
    576 				<b>nan - Not a number</b>
    577 			</dt>
    578 			<dd>- The NaN sign. Corresponds to the IEEE NaN bit pattern.</dd>
    579 			<dt>
    580 				<b>currencyDecimal</b>
    581 			</dt>
    582 			<dd>- Optional. If specified, then for currency formatting/parsing
    583 				this is used as the decimal separator instead of using the regular decimal
    584 				separator; otherwise, the regular decimal separator is used.</dd>
    585 			<dt>
    586 				<b>currencyGroup</b>
    587 			</dt>
    588 			<dd>- Optional. If specified, then for currency formatting/parsing
    589 				this is used as the group separator instead of using the regular group
    590 				separator; otherwise, the regular group separator is used.</dd>
    591 			<dt>
    592 				<b>timeSeparator</b>
    593 			</dt>
    594 			<dd>
    595 				- This replaces any use of the timeSeparator pattern character in a
    596 				date-time format pattern (no timeSeparator pattern character is
    597 				currently defined, see note below). This allows the same time format
    598 				to be used for multiple number systems when the time separator
    599 				depends on the number system. For example, the time format for
    600 				Arabic should be COLON when using the Latin numbering system (0, 1,
    601 				2, ), but when the Arabic numbering system is used ( -  - 
    602 				), the traditional time separator in older print styles was often
    603 				ARABIC COMMA.
    604 				<p class="note">
    605 					<b>Note: </b>In CLDR 26 the timeSeparator pattern character was
    606 					specified to be COLON. This was withdrawn in CLDR 28 due to
    607 					backward compatibility issues, and no timeSeparator pattern
    608 					character is currently defined. No CLDR locales are known to have a
    609 					need to specify timeSeparator symbols that depend on number system;
    610 					if this changes in the future a different timeSeparator pattern
    611 					character will be defined.
    612 				</p>
    613 			</dd>
    614 		</dl>
    615 		<p>Example:</p>
    616 		<pre>&lt;symbols&gt;
    617       &lt;decimal&gt;<span style="color: blue">.</span>&lt;/decimal&gt;
    618       &lt;group&gt;<span style="color: blue">,</span>&lt;/group&gt;
    619       &lt;list&gt;<span style="color: blue">;</span>&lt;/list&gt;
    620       &lt;percentSign&gt;<span style="color: blue">%</span>&lt;/percentSign&gt;
    621       &lt;patternDigit&gt;<span style="color: blue">#</span>&lt;/patternDigit&gt;
    622       &lt;plusSign&gt;<span style="color: blue">+</span>&lt;/plusSign&gt;
    623       &lt;minusSign&gt;<span style="color: blue">-</span>&lt;/minusSign&gt;
    624       &lt;exponential&gt;<span style="color: blue">E</span>&lt;/exponential&gt;
    625       &lt;superscriptingExponent&gt;<span style="color: blue"></span>&lt;/exponential&gt;
    626       &lt;perMille&gt;<span style="color: blue"></span>&lt;/perMille&gt;
    627       &lt;infinity&gt;<span style="color: blue"></span>&lt;/infinity&gt;
    628       &lt;nan&gt;<span style="color: blue"></span>&lt;/nan&gt;
    629       &lt;timeSeparator&gt;:&lt;/timeSeparator&gt;
    630 &lt;/symbols&gt;</pre>
    631 		<p>
    632 			<span class="dtd">&lt;!ATTLIST symbols numberSystem CDATA
    633 				#IMPLIED &gt;<br>
    634 			</span> The numberSystem attribute is used to specify that the given number
    635 			symbols are to be used when the given numbering system is active.
    636 			Number symbols can only be defined for numbering systems of the
    637 			"numeric" type, since any special symbols required for an algorithmic
    638 			numbering system should be specified by the RBNF formatting rules
    639 			used for that numbering system. By default, number symbols without a
    640 			specific numberSystem attribute are assumed to be used for the
    641 			&quot;latn&quot; numbering system, which is western (ASCII) digits.
    642 			Locales that specify a numbering system other than &quot;latn&quot;
    643 			as the default should also specify number formatting symbols that are
    644 			appropriate for use within the context of the given numbering system.
    645 			For example, a locale that uses the Arabic-Indic digits as its
    646 			default would likely use an Arabic comma for the grouping separator
    647 			rather than the ASCII comma.<br> For more information on
    648 			numbering systems and their definitions, see <i><a
    649 				href="#Numbering_Systems">Section 1: Numbering Systems</a></i>.
    650 		</p>
    651 
    652 		<h3>
    653 			2.4 <a name="Number_Formats" href="#Number_Formats">Number
    654 				Formats</a>
    655 		</h3>
    656 		<p class="dtd">
    657 			&lt;!ELEMENT decimalFormats (alias | (default*, decimalFormatLength*,
    658 			special*))&gt;<br> &lt;!ELEMENT decimalFormatLength (alias |
    659 			(default*, decimalFormat*, special*))&gt;<br> &lt;!ATTLIST
    660 			decimalFormatLength type ( full | long | medium | short ) #IMPLIED
    661 			&gt;<br> &lt;!ELEMENT decimalFormat (alias | (pattern*,
    662 			special*)) &gt;<br>
    663 		</p>
    664 		<p>(scientificFormats, percentFormats have the same structure)</p>
    665 		<p>
    666 			Number formats are used to define the rules for formatting numeric
    667 			quantities using the pattern syntax described in <i><a
    668 				href="#Number_Format_Patterns">Section 3: Number Format Patterns</a></i>.
    669 		</p>
    670 		<p>Different formats are provided for different contexts, as
    671 			follows:</p>
    672 		<dl>
    673 			<dt>&nbsp;</dt>
    674 			<dt>
    675 				<b>decimalFormats</b>
    676 			</dt>
    677 			<dd>The normal locale specific way to write a base 10 number.
    678 				Variations of the decimalFormat pattern are provided that allow
    679 				compact number formatting.</dd>
    680 			<dt>
    681 				<b>percentFormats</b>
    682 			</dt>
    683 			<dd>Pattern for use with percentage formatting</dd>
    684 			<dt>
    685 				<b>scientificFormats</b>
    686 			</dt>
    687 			<dd>Pattern for use with scientific (exponent) formatting.</dd>
    688 		</dl>
    689 		<p>Example:</p>
    690 		<pre>&lt;decimalFormats&gt;
    691   &lt;decimalFormatLength type=&quot;<span style="color: blue">long</span>&quot;&gt;
    692     &lt;decimalFormat&gt;
    693       &lt;pattern&gt;<span style="color: blue">#,##0.###</span>&lt;/pattern&gt;
    694     &lt;/decimalFormat&gt;
    695   &lt;/decimalFormatLength&gt;
    696 &lt;/decimalFormats&gt;</pre>
    697 		<pre>&lt;scientificFormats&gt;
    698   &lt;default type=&quot;<span style="color: blue">long</span>&quot;/&gt;
    699   &lt;scientificFormatLength type=&quot;<span style="color: blue">long</span>&quot;&gt;
    700     &lt;scientificFormat&gt;
    701       &lt;pattern&gt;<span style="color: blue">0.000###E+00</span>&lt;/pattern&gt;
    702     &lt;/scientificFormat&gt;
    703   &lt;/scientificFormatLength&gt;
    704   &lt;scientificFormatLength type=&quot;<span style="color: blue">medium</span>&quot;&gt;
    705     &lt;scientificFormat&gt;
    706       &lt;pattern&gt;<span style="color: blue">0.00##E+00</span>&lt;/pattern&gt;
    707     &lt;/scientificFormat&gt;
    708   &lt;/scientificFormatLength&gt;
    709 &lt;/scientificFormats&gt;</pre>
    710 		<pre>&lt;percentFormats&gt;
    711   &lt;percentFormatLength type=&quot;<span style="color: blue">long</span>&quot;&gt;
    712     &lt;percentFormat&gt;
    713       &lt;pattern&gt;<span style="color: blue">#,##0%</span>&lt;/pattern&gt;
    714     &lt;/percentFormat&gt;
    715   &lt;/percentFormatLength&gt;
    716 &lt;/percentFormats&gt;</pre>
    717 		<p>
    718 			<span class="dtd">&lt;!ATTLIST symbols numberSystem CDATA
    719 				#IMPLIED &gt;<br>
    720 			</span> The numberSystem attribute is used to specify that the given number
    721 			formatting pattern(s) are to be used when the given numbering system
    722 			is active. By default, number formatting patterns without a specific
    723 			numberSystem attribute are assumed to be used for the
    724 			&quot;latn&quot; numbering system, which is western (ASCII) digits.
    725 			Locales that specify a numbering system other than &quot;latn&quot;
    726 			as the default should also specify number formatting patterns that
    727 			are appropriate for use within the context of the given numbering
    728 			system. <br> For more information on numbering systems and their
    729 			definitions, see <i><a href="#Numbering_Systems">Section 1:
    730 					Numbering Systems</a></i>.
    731 		</p>
    732 		<h4>
    733 			2.4.1 <a name="Compact_Number_Formats" href="#Compact_Number_Formats">Compact
    734 				Number Formats</a>
    735 		</h4>
    736 		A pattern type attribute is used for <em>compact number formats</em>,
    737 		such as the following:
    738 		<pre>
    739 &lt;decimalFormatLength type=&quot;long&quot;&gt;<br>	&lt;decimalFormat&gt;<br>		&lt;pattern type=&quot;1000&quot; count=&quot;one&quot;&gt;0 millier&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000&quot; count=&quot;other&quot;&gt;0 milliers&lt;/pattern&gt;<br>		&lt;pattern type=&quot;10000&quot; count=&quot;one&quot;&gt;00 mille&lt;/pattern&gt;<br>		&lt;pattern type=&quot;10000&quot; count=&quot;other&quot;&gt;00 mille&lt;/pattern&gt;<br>		&lt;pattern type=&quot;100000&quot; count=&quot;one&quot;&gt;000 mille&lt;/pattern&gt;<br>		&lt;pattern type=&quot;100000&quot; count=&quot;other&quot;&gt;000 mille&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000000&quot; count=&quot;one&quot;&gt;0 million&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000000&quot; count=&quot;other&quot;&gt;0 millions&lt;/pattern&gt;<br>		<br>	&lt;/decimalFormat&gt;<br>&lt;/decimalFormatLength&gt;<br>&lt;decimalFormatLength type=&quot;short&quot;&gt;<br>	&lt;decimalFormat&gt;<br>		&lt;pattern type=&quot;1000&quot; count=&quot;one&quot;&gt;0 K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000&quot; count=&quot;other&quot;&gt;0 K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;10000&quot; count=&quot;one&quot;&gt;00 K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;10000&quot; count=&quot;other&quot;&gt;00 K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;100000&quot; count=&quot;one&quot;&gt;000 K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;100000&quot; count=&quot;other&quot;&gt;000 K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000000&quot; count=&quot;one&quot;&gt;0 M&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000000&quot; count=&quot;other&quot;&gt;0 M&lt;/pattern&gt;<br>		<br>	&lt;/decimalFormat&gt;
    740 
    741 &lt;currencyFormatLength type=&quot;short&quot;&gt;<br>	&lt;currencyFormat type=&quot;standard&quot;&gt;<br>		&lt;pattern type=&quot;1000&quot; count=&quot;one&quot;&gt;0K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000&quot; count=&quot;other&quot;&gt;0K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;10000&quot; count=&quot;one&quot;&gt;00K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;10000&quot; count=&quot;other&quot;&gt;00K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;100000&quot; count=&quot;one&quot;&gt;000K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;100000&quot; count=&quot;other&quot;&gt;000K&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000000&quot; count=&quot;one&quot;&gt;0M&lt;/pattern&gt;<br>		&lt;pattern type=&quot;1000000&quot; count=&quot;other&quot;&gt;0M&lt;/pattern&gt;</pre>
    742 		<p>Formats can be supplied for numbers (as above)
    743 			or for currencies or other units. They can also be used with ranges
    744 			of numbers, resulting in formatting strings like $10K or $37M.</p>
    745 		<p>To format a number N, the greatest type less than or equal to N
    746 			is used, with the appropriate plural category. N is divided by the
    747 			type, after removing the number of zeros in the pattern, less 1. APIs
    748 			supporting this format should provide control over the number of
    749 			significant or fraction digits.</p>
    750 		<p>The default pattern for any type that is not supplied is the special value 0, as in the following. The value 0 must be used when a child locale overrides a parent locale to drop the compact pattern for that type and use the default pattern.</p>
    751       <p><code>    &lt;pattern type=&quot;1&quot; count=&quot;one&quot;&gt;0&lt;/pattern&gt;</code></p>
    752 		<p>If the value is precisely 0, either explicit or defaulted, then the normal number format pattern for that sort
    753 			of object is supplied  either &lt;decimalFormat&gt; or &lt;currencyFormat type=&quot;standard&quot;&gt;  with the normal formatting for the locale (such as the grouping separators). However, for the 0 case by default the signficant digits are adjusted for consistency, typically to 2 or 3 digits, and the maximum fractional digits are set to 0 (for both currencies and plain decimal). Thus the output would be $12, not $12.01. APIs may, however, allow these default behaviors to be overridden.		</p>
    754 		<p>
    755 			With the data above, N=12345 matches <code>&lt;pattern type=&quot;10000&quot;
    756 				count=&quot;other&quot;&gt;00 K&lt;/pattern&gt;</code>
    757 			. N is divided by 1000 (obtained from10000 after removing
    758 			&quot;00&quot; and restoring one &quot;0&quot;. The result is
    759 			formatted according to the normal decimal pattern. With no fractional
    760 			digits, that yields &quot;12 K&quot;.
    761 		</p>
    762 		<p>Formatting 1200 in USD would result in
    763 			1.2 K $, while 990 implicitly maps to the special value 0, which maps to &lt;currencyFormat type=&quot;standard&quot;&gt;&lt;pattern&gt;#,##0.00&lt;/pattern&gt;, and would result in simply 990 $.</p>
    764 		<p>The short format is designed for UI environments where space is
    765 			at a premium, and should ideally result in a formatted string no more
    766 			than about 6 em wide (with no fractional digits).</p>
    767 		<h4>
    768 			2.4.2 <a name="Currency_Formats" href="#Currency_Formats">Currency
    769 				Formats</a>
    770 		</h4>
    771 		<p>
    772 			Pattern for use with currency formatting. This format contains a few
    773 			additional structural options that allow proper placement of the
    774 			currency symbol relative to the numeric quantity. Refer to <i><a
    775 				href="#Currencies">Section 4 - Currencies</a></i> for additional
    776 			information on the use of these options.
    777 		</p>
    778 		<p class="dtd">
    779 			&lt;!ELEMENT currencyFormats (alias | (default*, currencySpacing*,
    780 			currencyFormatLength*, unitPattern*, special*)) &gt;<br>
    781 			&lt;!ELEMENT currencySpacing (alias | (beforeCurrency*,
    782 			afterCurrency*, special*)) &gt;<br> &lt;!ELEMENT beforeCurrency
    783 			(alias | (currencyMatch*, surroundingMatch*, insertBetween*)) &gt;<br>
    784 			&lt;!ELEMENT afterCurrency (alias | (currencyMatch*,
    785 			surroundingMatch*, insertBetween*)) &gt;<br> &lt;!ELEMENT
    786 			currencyMatch ( #PCDATA ) &gt;<br> &lt;!ELEMENT surroundingMatch
    787 			( #PCDATA )) &gt;<br> &lt;!ELEMENT insertBetween ( #PCDATA )
    788 			&gt;<br> &lt;!ELEMENT currencyFormatLength (alias | (default*,
    789 			currencyFormat*, special*)) &gt;<br> &lt;!ATTLIST
    790 			currencyFormatLength type ( full | long | medium | short ) #IMPLIED
    791 			&gt;<br> &lt;!ELEMENT currencyFormat (alias | (pattern*,
    792 			special*)) &gt;
    793 		</p>
    794 		<p>In addition to a standard currency format, in which negative
    795 			currency amounts might typically be displayed as something like
    796 			-$3.27, locales may provide an "accounting" form, in which for
    797 			"en_US" the same example would appear as ($3.27).</p>
    798 		<pre>&lt;currencyFormats&gt;
    799   &lt;currencyFormatLength&gt;
    800     &lt;currencyFormat type="standard"&gt;
    801       &lt;pattern&gt;<span style="color: blue">#,##0.00</span>&lt;/pattern&gt;
    802     &lt;/currencyFormat&gt;
    803     &lt;currencyFormat type="accounting"&gt;
    804       &lt;pattern&gt;<span style="color: blue">#,##0.00;(#,##0.00)</span>&lt;/pattern&gt;
    805     &lt;/currencyFormat&gt;
    806   &lt;/currencyFormatLength&gt;
    807 &lt;/currencyFormats&gt;</pre>
    808 
    809 		<h3>
    810 			2.5 <a name="Miscellaneous_Patterns" href="#Miscellaneous_Patterns">Miscellaneous
    811 				Patterns</a>
    812 		</h3>
    813 		<p class="dtd">
    814 			&lt;!ELEMENT miscPatterns (alias | (default*, pattern*, special*))
    815 			&gt;<br> &lt;!ATTLIST miscPatterns numberSystem CDATA #IMPLIED
    816 			&gt;
    817 		</p>
    818 		<p>The miscPatterns supply additional patterns for special
    819 			purposes. The currently defined values are:</p>
    820 		<dl>
    821 			<dt><strong>approximately</strong> </dt>
    822             <dd>indicates an approximate number, such as: ~99</dd>
    823             <dt><strong>atMost</strong> </dt>
    824             <dd>indicates a number or lower, such as: <code></code>99 to indicate
    825               that there are 99 items or fewer.</dd>
    826             <dt><strong>atLeast</strong> </dt>
    827             <dd>indicates a number or higher, such as: 99+ to indicate
    828               that there are 99 items or more.</dd>
    829             <dt><strong>range</strong></dt>
    830 			<dd>indicates a range of numbers, such as: 99103 to indicate
    831 				that there are from 99 to 103 items.</dd>
    832 		</dl>
    833 		<p>
    834 			<em>For example: </em>
    835 		</p>
    836 		<p>
    837 			<code>
    838 				&lt;miscPatterns numberSystem=&quot;&quot;&gt;<br>		
    839 				&lt;pattern type=&quot;approximately&quot;&gt;~{0}&lt;/pattern&gt;<br>
    840 								&lt;pattern type=&quot;atLeast&quot;&gt;{0}&lt;/pattern&gt; 			<br>
    841 				&lt;pattern type=&quot;atMost&quot;&gt;{0}&lt;/pattern&gt;<br>
    842 				 
    843 				&lt;pattern type=&quot;range&quot;&gt;{0}{1}&lt;/pattern&gt; 		<br>
    844 				&lt;/miscPatterns&gt;</code>
    845 		</p>
    846   <h3>
    847 		2.6 <a name="Minimal_Pairs" href="#Minimal_Pairs">Minimal Pairs</a></h3>
    848 	  <p class="dtd">&lt;!ELEMENT minimalPairs ( alias | ( pluralMinimalPairs*, ordinalMinimalPairs*, special* ) ) &gt;
    849         <br>&lt;!ATTLIST minimalPairs alt NMTOKENS #IMPLIED &gt; <br>
    850         &lt;!ATTLIST minimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED &gt;     <br>
    851 	  </p>
    852 	  <p class="dtd">&lt;!ELEMENT pluralMinimalPairs ( #PCDATA ) &gt; <br>
    853 	    &lt;!ATTLIST pluralMinimalPairs count NMTOKEN #IMPLIED &gt; <br>
    854 	    &lt;!ATTLIST pluralMinimalPairs alt NMTOKENS #IMPLIED &gt; <br>
    855 	    &lt;!ATTLIST pluralMinimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED &gt;</p>
    856 	  <p class="dtd">&lt;!ELEMENT ordinalMinimalPairs ( #PCDATA ) &gt; <br>
    857 	    &lt;!ATTLIST ordinalMinimalPairs ordinal NMTOKEN #IMPLIED &gt; <br>
    858 	    &lt;!ATTLIST ordinalMinimalPairs alt NMTOKENS #IMPLIED &gt; <br>
    859 	    &lt;!ATTLIST ordinalMinimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED &gt;</p>
    860       <p>Minimal pairs provide examples that justify why multiple plural or ordinal categories exist. For more information, see <a href="http://cldr.unicode.org/index/cldr-spec/plural-rules">Plural Rules</a>.</p>
    861       <h2>
    862 			<a name="Number_Format_Patterns" href="#Number_Format_Patterns">3
    863 				Number Format Patterns</a>
    864 		</h2>
    865 		<h3>
    866 			3.1 <a name="Number_Patterns" href="#Number_Patterns">Number
    867 				Patterns</a>
    868 		</h3>
    869 		<p>Number patterns affect how numbers are interpreted in a
    870 			localized context. Here are some examples, based on the French
    871 			locale. The &quot;.&quot; shows where the decimal point should go.
    872 			The &quot;,&quot; shows where the thousands separator should go. A
    873 			&quot;0&quot; indicates zero-padding: if the number is too short, a
    874 			zero (in the locale&#39;s numeric set) will go there. A &quot;#&quot;
    875 			indicates no padding: if the number is too short, nothing goes there.
    876 			A &quot;&quot; shows where the currency sign will go. The following
    877 			illustrates the effects of different patterns for the French locale,
    878 			with the number &quot;1234.567&quot;. Notice how the pattern
    879 			characters &#39;,&#39; and &#39;.&#39; are replaced by the characters
    880 			appropriate for the locale.</p>
    881 		<blockquote>
    882 			<table cellspacing="0" cellpadding="4" border="1">
    883 				<caption>
    884 					<a name="Number_Pattern_Examples" href="#Number_Pattern_Examples">Number
    885 						Pattern Examples</a>
    886 				</caption>
    887 				<tr bgcolor="#ccccff">
    888 					<th width="17%">Pattern</th>
    889 					<th width="16%">Currency</th>
    890 					<th width="33%">Text</th>
    891 				</tr>
    892 				<tr>
    893 					<td width="17%">#,##0.##</td>
    894 					<td width="16%"><i>n/a</i></td>
    895 					<td width="33%">1 234,57</td>
    896 				</tr>
    897 				<tr>
    898 					<td width="17%">#,##0.###</td>
    899 					<td width="16%"><i>n/a</i></td>
    900 					<td width="33%">1 234,567</td>
    901 				</tr>
    902 				<tr>
    903 					<td width="17%">###0.#####</td>
    904 					<td width="16%"><i>n/a</i></td>
    905 					<td width="33%">1234,567</td>
    906 				</tr>
    907 				<tr>
    908 					<td width="17%">###0.0000#</td>
    909 					<td width="16%"><i>n/a</i></td>
    910 					<td width="33%">1234,5670</td>
    911 				</tr>
    912 				<tr>
    913 					<td width="17%">00000.0000</td>
    914 					<td width="16%"><i>n/a</i></td>
    915 					<td width="33%">01234,5670</td>
    916 				</tr>
    917 				<tr>
    918 					<td width="17%" rowspan="2">#,##0.00 </td>
    919 					<td width="16%">EUR</td>
    920 					<td width="33%">1 234,57 </td>
    921 				</tr>
    922 				<tr>
    923 					<td width="16%">JPY</td>
    924 					<td width="33%">1 235 JP</td>
    925 				</tr>
    926 			</table>
    927 		</blockquote>
    928 		<p>
    929 			The number of # placeholder characters before the decimal do not
    930 			matter, since no limit is placed on the maximum number of digits.
    931 			There should, however, be at least one zero someplace in the pattern.
    932 			In currency formats, the number of digits after the decimal also do
    933 			not matter, since the information in the supplemental data (see <i><a
    934 				href="#Supplemental_Currency_Data">Supplemental Currency Data</a>)</i>
    935 			is used to override the number of decimal places  and the rounding 
    936 			according to the currency that is being formatted. That can be seen
    937 			in the above chart, with the difference between Yen and Euro
    938 			formatting.
    939 		</p>
    940 		<p>
    941 			To ensure correct layout, especially in currency patterns in which a
    942 			a variety of symbols may be used, number patterns may contain (invisible)
    943 			bidirectional text format characters such as LRM, RLM, and ALM.
    944 		</p>
    945 		<p>
    946 			<i>When parsing using a pattern, a lenient parse should be used;
    947 				see <a href="tr35.html#Lenient_Parsing">Lenient Parsing</a>.</i> As noted there, lenient parsing should ignore bidi format
    948 				characters.
    949 		</p>
    950 		<h3>
    951 			3.2 <a name="Special_Pattern_Characters"
    952 				href="#Special_Pattern_Characters">Special Pattern Characters</a>
    953 		</h3>
    954 		<p>Many characters in a pattern are taken literally; they are
    955 			matched during parsing and output unchanged during formatting.
    956 			Special characters, on the other hand, stand for other characters,
    957 			strings, or classes of characters. For example, the &#39;#&#39;
    958 			character is replaced by a localized digit for the chosen
    959 			numberSystem. Often the replacement character is the same as the
    960 			pattern character; in the U.S. locale, the &#39;,&#39; grouping
    961 			character is replaced by &#39;,&#39;. However, the replacement is
    962 			still happening, and if the symbols are modified, the grouping
    963 			character changes. Some special characters affect the behavior of the
    964 			formatter by their presence; for example, if the percent character is
    965 			seen, then the value is multiplied by 100 before being displayed.</p>
    966 		<p>
    967 			To insert a special character in a pattern as a literal, that is,
    968 			without any special meaning, the character must be quoted. There are
    969 			some exceptions to this which are noted below. The Localized
    970 			Replacement column shows the replacement from <em>Section 2.3 <a
    971 				href="#Number_Symbols">Number Symbols</a>
    972 			</em> or the numberSystem's digits: <em>italic</em> indicates a special
    973 			function.
    974 		</p>
    975 		<p>
    976 			Invalid sequences of special characters (such as  in current
    977 			CLDR) should be handled for formatting and parsing as described in <a
    978 				href="tr35.html#Invalid_Patterns">Handling Invalid Patterns</a>.
    979 		</p>
    980 		<blockquote>
    981 			<table cellspacing="3" cellpadding="0"
    982 				summary="Chart showing symbol,
    983   location, localized, and meaning."
    984 				border="0">
    985 				<caption>
    986 					<a name="Number_Pattern_Character_Definitions"
    987 						href="#Number_Pattern_Character_Definitions">Number Pattern
    988 						Character Definitions</a>
    989 				</caption>
    990 				<tr bgcolor="#ccccff">
    991 					<th align="left">Symbol</th>
    992 					<th align="left">Location</th>
    993 					<th align="left">Localized Replacement</th>
    994 					<th colspan="2" align="left">Meaning</th>
    995 				</tr>
    996 				<tr valign="top">
    997 					<td>0</td>
    998 					<td>Number</td>
    999 					<td>digit</td>
   1000 					<td colspan="2">Digit</td>
   1001 				</tr>
   1002 				<tr valign="top" bgcolor="#eeeeff">
   1003 					<td>1-9</td>
   1004 					<td>Number</td>
   1005 					<td>digit</td>
   1006 					<td colspan="2">&#39;1&#39; through &#39;9&#39; indicate
   1007 						rounding.</td>
   1008 				</tr>
   1009 				<tr valign="top">
   1010 					<td>@</td>
   1011 					<td>Number</td>
   1012 					<td>digit</td>
   1013 					<td colspan="2">Significant digit</td>
   1014 				</tr>
   1015 				<tr valign="top" bgcolor="#eeeeff">
   1016 					<td>#</td>
   1017 					<td>Number</td>
   1018 					<td>digit, <em>nothing</em></td>
   1019 					<td colspan="2">Digit, omitting leading/trailing zeros</td>
   1020 				</tr>
   1021 				<tr valign="top">
   1022 					<td>.</td>
   1023 					<td>Number</td>
   1024 					<td>decimal, currencyDecimal</td>
   1025 					<td colspan="2">Decimal separator or monetary decimal
   1026 						separator</td>
   1027 				</tr>
   1028 				<tr valign="top" bgcolor="#eeeeff">
   1029 					<td>-</td>
   1030 					<td>Number</td>
   1031 					<td>minusSign</td>
   1032 					<td colspan="2">Minus sign. <strong>Warning: </strong>the pattern '-'0.0 is not the same as the pattern -0.0. In the former case, the minus sign is a literal. In the latter case, it is a special symbol, which is replaced by the minusSymbol, and can also be replaced by the plusSymbol for a format like +12% as in Section 3.2.1 <a href="#Explicit_Plus">Explicit Plus Signs</a>.</td>
   1033 				</tr>
   1034 				<tr valign="top">
   1035 					<td>,</td>
   1036 					<td>Number</td>
   1037 					<td>group, currencyGroup</td>
   1038 					<td colspan="2">Grouping separator. May occur in both the
   1039 						integer part and the fractional part. The position determines the
   1040 						grouping.</td>
   1041 				</tr>
   1042 				<tr valign="top" bgcolor="#eeeeff">
   1043 					<td>E</td>
   1044 					<td>Number</td>
   1045 					<td>exponential, superscriptingExponent</td>
   1046 					<td colspan="2">Separates mantissa and exponent in scientific
   1047 						notation. <em>Need not be quoted in prefix or suffix.</em>
   1048 					</td>
   1049 				</tr>
   1050 				<tr valign="top">
   1051 					<td>+</td>
   1052 					<td>Exponent or Number (for
   1053 							explicit plus)</td>
   1054 					<td>plusSign</td>
   1055 					<td colspan="2">Prefix positive exponents with localized plus
   1056 						sign. Used for explicit plus for numbers as well, as described in
   1057 						Section 3.2.1 <a href="#Explicit_Plus">Explicit Plus Signs</a>. <em><br>
   1058 							Need not be quoted in prefix or suffix.</em>
   1059 					</td>
   1060 				</tr>
   1061 				<tr valign="top">
   1062 					<td>%</td>
   1063 					<td>Prefix or suffix</td>
   1064 					<td>percentSign</td>
   1065 					<td colspan="2">Multiply by 100 and show as percentage</td>
   1066 				</tr>
   1067 				<tr valign="top" bgcolor="#eeeeff">
   1068 					<td><br> (U+2030)
   1069 					</td>
   1070 					<td>Prefix or suffix</td>
   1071 					<td>perMille</td>
   1072 					<td colspan="2">Multiply by 1000 and show as per mille (aka
   1073 						basis points)</td>
   1074 				</tr>
   1075 				<tr valign="top" bgcolor="#eeeeff">
   1076 					<td>;</td>
   1077 					<td>Subpattern boundary</td>
   1078 					<td><em>syntax</em></td>
   1079 					<td colspan="2">Separates positive and negative subpatterns.
   1080 						When there is no explicit negative subpattern, an implicit
   1081 						negative subpattern is formed from the positive pattern with a
   1082 						prefixed - (ASCII U+002D HYPHEN-MINUS).</td>
   1083 				</tr>
   1084 				<tr valign="top">
   1085 					<td rowspan="11"> (U+00A4)</td>
   1086 					<td rowspan="11">Prefix or suffix</td>
   1087 					<td rowspan="11"><em>currency symbol/name from currency
   1088 							specified in API</em></td>
   1089 					<td colspan="2">Any sequence is replaced by the localized
   1090 						currency symbol for the currency being formatted, as in the table
   1091 						below. If present in a pattern, the monetary decimal separator and
   1092 						grouping separators (if available) are used instead of the numeric
   1093 						ones. If data is unavailable for a given sequence in a given
   1094 						locale, the display may fall back to  or . See also the
   1095 						formatting forcurrency display names, steps 2 and 4 in <a
   1096 						href="#Currencies">Currencies</a>.
   1097 					</td>
   1098 				</tr>
   1099 				<tr valign="top">
   1100 					<th>No.</th>
   1101 					<th>Replacement / Example</th>
   1102 				</tr>
   1103 				<tr valign="top">
   1104 					<td rowspan="2"></td>
   1105 					<td>Standard currency symbol</td>
   1106 				</tr>
   1107 				<tr valign="top">
   1108 					<td><em>C$12.00</em></td>
   1109 				</tr>
   1110 				<tr valign="top">
   1111 					<td rowspan="2"></td>
   1112 					<td>ISO currency symbol (constant)</td>
   1113 				</tr>
   1114 				<tr valign="top">
   1115 					<td><em>CAD 12.00</em></td>
   1116 				</tr>
   1117 				<tr valign="top">
   1118 					<td rowspan="2"></td>
   1119 					<td>Appropriate currency display name for the currency, based
   1120 						on the plural rules in effect for the locale</td>
   1121 				</tr>
   1122 				<tr valign="top">
   1123 					<td><em>5.00 Canadian dollars</em></td>
   1124 				</tr>
   1125 				<tr valign="top">
   1126 					<td rowspan="2" nowrap></td>
   1127 					<td>Narrow currency symbol. The same symbols may be used for
   1128 						multiple currencies. Thus the symbol may be ambiguous, and should
   1129 						only be used where the context is clear.</td>
   1130 				</tr>
   1131 				<tr valign="top">
   1132 					<td><em>$12.00</em></td>
   1133 				</tr>
   1134 				<tr valign="top">
   1135 					<td><em>others</em></td>
   1136 					<td><em>Invalid in current
   1137 								CLDR. Reserved for future specification</em></td>
   1138 				</tr>
   1139 				<tr valign="top">
   1140 					<td>*</td>
   1141 					<td>Prefix or suffix boundary</td>
   1142 					<td><em>padding character specified in API</em></td>
   1143 					<td colspan="2">Pad escape, precedes pad character</td>
   1144 				</tr>
   1145 				<tr valign="top" bgcolor="#eeeeff">
   1146 					<td>&#39;</td>
   1147 					<td>Prefix or suffix</td>
   1148 					<td><em>syntax-only</em></td>
   1149 					<td colspan="2">Used to quote special characters in a prefix
   1150 						or suffix, for example, <code>&quot;&#39;#&#39;#&quot;</code>
   1151 						formats 123 to <code>&quot;#123&quot;</code>. To create a single
   1152 						quote itself, use two in a row: <code>&quot;#
   1153 							o&#39;&#39;clock&quot;</code>.
   1154 					</td>
   1155 				</tr>
   1156 			</table>
   1157 		</blockquote>
   1158 		<p>A pattern contains a positive subpattern and may contain a
   1159 			negative subpattern, for example, &quot;#,##0.00;(#,##0.00)&quot;.
   1160 			Each subpattern has a prefix, a numeric part, and a suffix. If there
   1161 			is no explicit negative subpattern, the implicit negative subpattern
   1162 			is the ASCII minus sign (-) prefixed to the positive subpattern. That
   1163 			is, &quot;0.00&quot; alone is equivalent to &quot;0.00;-0.00&quot;.
   1164 			(The data in CLDR is normalized to remove an explicit negative subpattern
   1165 			where it would be identical to the implicit form.)</p>
   1166 		<p> Note that if an negative subpattern is used as-is: a minus sign is <em>not</em> added, eg &quot;0.00;0.00&quot;  &quot;0.00;-0.00&quot;. Trailing semicolons  are ignored, eg &quot;0.00;&quot; = &quot;0.00&quot;. Whitespace is not ignored, including those around semicolons, so &quot;0.00; -0.00&quot;  &quot;0.00; -0.00&quot;.</p>
   1167 		<p>If there is an
   1168 		  explicit negative subpattern, it serves only to specify the negative
   1169 		  prefix and suffix; the number of digits, minimal digits, and other
   1170 		  characteristics are ignored in the negative subpattern. That means
   1171 		  that &quot;#,##0.0#;(#)&quot; has precisely the same result as
   1172 		  &quot;#,##0.0#;(#,##0.0#)&quot;. However in the CLDR data, the format
   1173 		  is normalized so that the other characteristics are preserved, just
   1174 		  for readability.		</p>
   1175 		<blockquote>
   1176 			<p>
   1177 				<b>Note: </b>The thousands separator and decimal separator in
   1178 				patterns are always ASCII &#39;,&#39; and &#39;.&#39;. They are
   1179 				substituted by the code with the correct local values according to
   1180 				other fields in CLDR. The same is true of the - (ASCII minus sign)
   1181 				and other special characters listed above.
   1182 			</p>
   1183 		</blockquote>
   1184 		<p>Below is a sample of patterns, special characters, and results:</p>
   1185 		<div align="center">
   1186 			<table border="0" cellpadding="0" cellspacing="3">
   1187 				<caption>
   1188 					<a name='Sample_Patterns_and_Results'
   1189 						href='#Sample_Patterns_and_Results'>Sample Patterns and
   1190 						Results</a>
   1191 				</caption>
   1192 				<tr valign="top">
   1193 					<th><div align="right">explicit pattern:</div></th>
   1194 					<td colspan="2"><div align="center">0.00;-0.00</div></td>
   1195 					<td colspan="2"><div align="center">0.00;0.00-</div></td>
   1196 					<td colspan="2"><div align="center">0.00+;0.00-</div></td>
   1197 				</tr>
   1198 				<tr valign="top">
   1199 					<th><div align="right">decimalSign:</div></th>
   1200 					<td colspan="2"><div align="center">,</div></td>
   1201 					<td colspan="2"><div align="center">,</div></td>
   1202 					<td colspan="2"><div align="center">,</div></td>
   1203 				</tr>
   1204 				<tr valign="top">
   1205 					<th><div align="right">minusSign:</div></th>
   1206 					<td colspan="2"><div align="center"></div></td>
   1207 					<td colspan="2"><div align="center"></div></td>
   1208 					<td colspan="2"><div align="center"></div></td>
   1209 				</tr>
   1210 				<tr valign="top">
   1211 					<th><div align="right">plusSign:</div></th>
   1212 					<td colspan="2"><div align="center"></div></td>
   1213 					<td colspan="2"><div align="center"></div></td>
   1214 					<td colspan="2"><div align="center"></div></td>
   1215 				</tr>
   1216 				<tr valign="top">
   1217 					<th><div align="right">number:</div></th>
   1218 					<td><div align="center">3.1415</div></td>
   1219 					<td><div align="center">-3.1415</div></td>
   1220 					<td><div align="center">3.1415</div></td>
   1221 					<td><div align="center">-3.1415</div></td>
   1222 					<td><div align="center">3.1415</div></td>
   1223 					<td><div align="center">-3.1415</div></td>
   1224 				</tr>
   1225 				<tr valign="top">
   1226 					<th><div align="right">formatted:</div></th>
   1227 					<td><div align="center">3,14</div></td>
   1228 					<td><div align="center">3,14</div></td>
   1229 					<td><div align="center">3,14</div></td>
   1230 					<td><div align="center">3,14</div></td>
   1231 					<td><div align="center">3,14</div></td>
   1232 					<td><div align="center">3,14</div></td>
   1233 				</tr>
   1234 			</table>
   1235 			<p>
   1236 				<em>In the above table,  = U+2238 DOT MINUS and  = U+2214 DOT
   1237 					PLUS are used for illustration.</em>
   1238 			</p>
   1239 		</div>
   1240 		<p>
   1241 			The prefixes, suffixes, and various symbols used for infinity,
   1242 			digits, thousands separators, decimal separators, and so on may be
   1243 			set to arbitrary values, and they will appear properly during
   1244 			formatting. <i>However, care must be taken that the symbols and
   1245 				strings do not conflict, or parsing will be unreliable. </i> For
   1246 			example, either the positive and negative prefixes or the suffixes
   1247 			must be distinct for any parser using this data to be able to
   1248 			distinguish positive from negative values. Another example is that
   1249 			the decimal separator and thousands separator should be distinct
   1250 			characters, or parsing will be impossible.
   1251 		</p>
   1252 		<p>
   1253 			The <em>grouping separator</em> is a character that separates
   1254 			clusters of integer digits to make large numbers more legible. It is
   1255 			commonly used for thousands, but in some locales it separates
   1256 			ten-thousands. The <em>grouping size</em> is the number of digits
   1257 			between the grouping separators, such as 3 for
   1258 			&quot;100,000,000&quot; or 4 for &quot;1 0000 0000&quot;. There are
   1259 			actually two different grouping sizes: One used for the least
   1260 			significant integer digits, the <em>primary grouping size</em>, and
   1261 			one used for all others, the <em>secondary grouping size</em>. In
   1262 			most locales these are the same, but sometimes they are different.
   1263 			For example, if the primary grouping interval is 3, and the secondary
   1264 			is 2, then this corresponds to the pattern &quot;#,##,##0&quot;, and
   1265 			the number 123456789 is formatted as &quot;12,34,56,789&quot;. If a
   1266 			pattern contains multiple grouping separators, the interval between
   1267 			the last one and the end of the integer defines the primary grouping
   1268 			size, and the interval between the last two defines the secondary
   1269 			grouping size. All others are ignored, so &quot;#,##,###,####&quot;
   1270 			== &quot;###,###,####&quot; == &quot;##,#,###,####&quot;.
   1271 		</p>
   1272 		<p>
   1273 			The grouping separator may also occur in the fractional part, such as
   1274 			in #,##0.###,#. This is most commonly done where the grouping
   1275 			separator character is a thin, non-breaking space (U+202F), such as
   1276 			1.61803398875. See <a
   1277 				href="http://physics.nist.gov/cuu/Units/checklist.html ">physics.nist.gov/cuu/Units/checklist.html</a>.
   1278 		</p>
   1279 
   1280 		<p>For consistency in the CLDR data, the following conventions are
   1281 			observed:</p>
   1282 		<ul>
   1283 			<li>All number patterns should be minimal: there should be no
   1284 				leading # marks except to specify the position of the grouping
   1285 				separators (for example, avoid&nbsp; ##,##0.###).</li>
   1286 			<li>All formats should have one 0 before the decimal point (for
   1287 				example, avoid #,###.##)</li>
   1288 			<li>Decimal formats should have three hash marks in the
   1289 				fractional position (for example, #,##0.###).</li>
   1290 			<li>Currency formats should have two zeros in the fractional
   1291 				position (for example,  #,##0.00).
   1292 				<ul>
   1293 					<li>The exact number of decimals is overridden with the
   1294 						decimal count in supplementary data or by API settings.</li>
   1295 				</ul>
   1296 			</li>
   1297 			<li>The only time two thousands separators needs to be used is
   1298 				when the number of digits varies, such as for Hindi: #,##,##0.</li>
   1299 			<li>The <strong>minimumGroupingDigits</strong> can be used to
   1300 				suppress groupings below a certain value. This is used for languages
   1301 				such as Polish, where one would only write the grouping separator
   1302 				for values above 9999. The minimumGroupingDigits contains the
   1303 				default for the locale.
   1304 				<ul>
   1305 					<li>The attribute value is used by adding it to the grouping
   1306 						separator value. If the input number has fewer integer digits, the
   1307 						grouping separator is suppressed.</li>
   1308 					<li>
   1309 						<table border="1" cellpadding="0" cellspacing="0">
   1310 							<caption>
   1311 								<a name="Examples_of_minimumGroupingDigits"
   1312 									href="#Examples_of_minimumGroupingDigits">Examples of
   1313 									minimumGroupingDigits</a>
   1314 							</caption>
   1315 							<tr>
   1316 								<th width="25%" scope="col"><div align="center">minimum&shy;GroupingDigits</div></th>
   1317 								<th width="25%" scope="col"><div align="center">Pattern
   1318 										Grouping</div></th>
   1319 								<th width="25%" scope="col"><div align="center">Input
   1320 										Number</div></th>
   1321 								<th width="25%" scope="col"><div align="center">Formatted</div></th>
   1322 							</tr>
   1323 							<tr>
   1324 								<td><div align="right">1</div></td>
   1325 								<td><div align="right">3</div></td>
   1326 								<td><div align="right">1000</div></td>
   1327 								<td><div align="right">1,000</div></td>
   1328 							</tr>
   1329 							<tr>
   1330 								<td><div align="right">1</div></td>
   1331 								<td><div align="right">3</div></td>
   1332 								<td><div align="right">10000</div></td>
   1333 								<td><div align="right">10,000</div></td>
   1334 							</tr>
   1335 							<tr>
   1336 								<td><div align="right">2</div></td>
   1337 								<td><div align="right">3</div></td>
   1338 								<td><div align="right">1000</div></td>
   1339 								<td><div align="right">1000</div></td>
   1340 							</tr>
   1341 							<tr>
   1342 								<td><div align="right">2</div></td>
   1343 								<td><div align="right">3</div></td>
   1344 								<td><div align="right">10000</div></td>
   1345 								<td><div align="right">10,000</div></td>
   1346 							</tr>
   1347 							<tr>
   1348 								<td><div align="right">1</div></td>
   1349 								<td><div align="right">4</div></td>
   1350 								<td><div align="right">10000</div></td>
   1351 								<td><div align="right">1,0000</div></td>
   1352 							</tr>
   1353 							<tr>
   1354 								<td><div align="right">2</div></td>
   1355 								<td><div align="right">4</div></td>
   1356 								<td><div align="right">10000</div></td>
   1357 								<td><div align="right">10000</div></td>
   1358 							</tr>
   1359 						</table></li>
   1360 				</ul>
   1361 			</li>
   1362 		</ul>
   1363 		<h4>
   1364 			3.2.1 <a name="Explicit_Plus" href="#Explicit_Plus">Explicit Plus
   1365 				Signs</a>
   1366 		</h4>
   1367 		<p>
   1368 			An explicit &quot;plus&quot; format can be formed, so as to show a
   1369 			visible + sign when formatting a non-negative number. The displayed
   1370 			plus sign can be an ASCII plus or another character, such as  U+FF0B
   1371 			FULLWIDTH PLUS SIGN or  U+2795 HEAVY PLUS SIGN; it is taken from
   1372 			whatever is set for plusSign in <em>Section 2.3 <a
   1373 				href="#Number_Symbols">Number Symbols</a></em>.
   1374 		</p>
   1375 		<ol>
   1376 			<li>Get the negative subpattern (explicit or implicit).</li>
   1377 			<li>Replace any unquoted ASCII minus sign by an ASCII plus sign.</li>
   1378 			<li>If there are any replacements, use that for the positive
   1379 				subpattern.</li>
   1380 		</ol>
   1381 		<p>
   1382 			For an example, see <a href="#Sample_Patterns_and_Results">Sample
   1383 				Patterns and Results</a>.
   1384 		</p>
   1385 		<h3>
   1386 			3.3 <a name="Formatting" href="#Formatting">Formatting</a>
   1387 		</h3>
   1388 		<p>
   1389 			Formatting is guided by several parameters, all of which can be
   1390 			specified either using a pattern or using an external API designed
   1391 			for number formatting. The following description applies to formats
   1392 			that do not use <a href="#sci">scientific notation</a> or <a
   1393 				href="#sigdig">significant digits</a>.
   1394 		</p>
   1395 		<ul>
   1396 			<li>If the number of actual integer digits exceeds the <em>maximum
   1397 					integer digits</em>, then only the least significant digits are shown.
   1398 				For example, 1997 is formatted as &quot;97&quot; if the maximum
   1399 				integer digits is set to 2.
   1400 			</li>
   1401 			<li>If the number of actual integer digits is less than the <em>minimum
   1402 					integer digits</em>, then leading zeros are added. For example, 1997 is
   1403 				formatted as &quot;01997&quot; if the minimum integer digits is set
   1404 				to 5.
   1405 			</li>
   1406 			<li>If the number of actual fraction digits exceeds the <em>maximum
   1407 					fraction digits</em>, then half-even rounding it performed to the
   1408 				maximum fraction digits. For example, 0.125 is formatted as
   1409 				&quot;0.12&quot; if the maximum fraction digits is 2. This behavior
   1410 				can be changed by specifying a rounding increment and a rounding
   1411 				mode.
   1412 			</li>
   1413 			<li>If the number of actual fraction digits is less than the <em>minimum
   1414 					fraction digits</em>, then trailing zeros are added. For example, 0.125
   1415 				is formatted as &quot;0.1250&quot; if the minimum fraction digits is
   1416 				set to 4.
   1417 			</li>
   1418 			<li>Trailing fractional zeros are not displayed if they occur <em>j</em>
   1419 				positions after the decimal, where <em>j</em> is less than the
   1420 				maximum fraction digits. For example, 0.10004 is formatted as
   1421 				&quot;0.1&quot; if the maximum fraction digits is four or less.
   1422 			</li>
   1423 		</ul>
   1424 		<p>
   1425 			<strong>Special Values</strong>
   1426 		</p>
   1427 		<p>
   1428 			<code>NaN</code>
   1429 			is represented as a single character, typically
   1430 			<code> (U+FFFD) </code>
   1431 			. This character is determined by the localized number symbols. This
   1432 			is the only value for which the prefixes and suffixes are not used.
   1433 		</p>
   1434 		<p>
   1435 			Infinity is represented as a single character, typically <font
   1436 				size="3"> </font>
   1437 			<code> (U+221E) </code>
   1438 			, with the positive or negative prefixes and suffixes applied. The
   1439 			infinity character is determined by the localized number symbols.
   1440 		</p>
   1441 		<h3>
   1442 			3.4 <a name="sci" href="#sci">Scientific Notation</a>
   1443 		</h3>
   1444 		<p>
   1445 			Numbers in scientific notation are expressed as the product of a
   1446 			mantissa and a power of ten, for example, 1234 can be expressed as
   1447 			1.234 x 10<sup>3</sup>. The mantissa is typically in the half-open
   1448 			interval [1.0, 10.0) or sometimes [0.0, 1.0), but it need not be. In
   1449 			a pattern, the exponent character immediately followed by one or more
   1450 			digit characters indicates scientific notation. Example:
   1451 			&quot;0.###E0&quot; formats the number 1234 as &quot;1.234E3&quot;.
   1452 		</p>
   1453 		<ul>
   1454 			<li>The number of digit characters after the exponent character
   1455 				gives the minimum exponent digit count. There is no maximum.
   1456 				Negative exponents are formatted using the localized minus sign, <em>not</em>
   1457 				the prefix and suffix from the pattern. This allows patterns such as
   1458 				&quot;0.###E0 m/s&quot;. To prefix positive exponents with a
   1459 				localized plus sign, specify &#39;+&#39; between the exponent and
   1460 				the digits: &quot;0.###E+0&quot; will produce formats
   1461 				&quot;1E+1&quot;, &quot;1E+0&quot;, &quot;1E-1&quot;, and so on. (In
   1462 				localized patterns, use the localized plus sign rather than
   1463 				&#39;+&#39;.)
   1464 			</li>
   1465 			<li>The minimum number of integer digits is achieved by
   1466 				adjusting the exponent. Example: 0.00123 formatted with
   1467 				&quot;00.###E0&quot; yields &quot;12.3E-4&quot;. This only happens
   1468 				if there is no maximum number of integer digits. If there is a
   1469 				maximum, then the minimum number of integer digits is fixed at one.</li>
   1470 			<li>The maximum number of integer digits, if present, specifies
   1471 				the exponent grouping. The most common use of this is to generate <em>engineering
   1472 					notation</em>, in which the exponent is a multiple of three, for
   1473 				example, &quot;##0.###E0&quot;. The number 12345 is formatted using
   1474 			&quot;##0.####E0&quot; as &quot;12.345E3&quot;.			</li>
   1475 			<li>
   1476 			  <p>When using scientific notation, the formatter controls the digit counts using logic for significant digits. The maximum number of significant digits comes from the mantissa portion of the pattern: the string of#,0, andperiod (&quot;.&quot;)characters immediately preceding theE. To get the maximum number of significant digits, use the following algorithm:<br>
   1477 		      </p>
   1478 			  <ol>
   1479 			    <li>If the mantissa pattern contains aperiod:
   1480 			      <ol>
   1481 			        <li>If the mantissa pattern contains at least one0:
   1482 			          <ul>
   1483 			            <li>Return the number of0s before theperiodadded to the number of#s or0s after theperiod</li>
   1484 		              </ul>
   1485 		            </li>
   1486 			        <li>Else:
   1487 			          <ul>
   1488 			            <li>Return 1 plus the number of#s after theperiod</li>
   1489 		              </ul>
   1490 		            </li>
   1491 		          </ol>
   1492 		        </li>
   1493 			    <li>Else:
   1494 			      <ol>
   1495 			        <li>If the mantissa pattern contains at least one0:
   1496 			          <ul>
   1497 			            <li>Return the number of0s.</li>
   1498 		              </ul>
   1499 		            </li>
   1500 			        <li>Else:
   1501 			          <ul>
   1502 			            <li>Return positive infinity.</li>
   1503 		              </ul>
   1504 		            </li>
   1505 		          </ol>
   1506 		        </li>
   1507 		      </ol>
   1508 			  <p>Examples:<br>
   1509 		      </p>
   1510 			  <ul>
   1511 			    <li>0.##E0means a max of 3 significant digits.</li>
   1512 			    <li>#.##E0also means a max of 3 significant digits.</li>
   1513 			    <li>#.0#E0means a max of 2 significant digits.</li>
   1514 			    <li>0E0means a max of 1 significant digit.</li>
   1515 			    <li>#E0means infinite precision.</li>
   1516 			    <li>###E0means engineering notation with infinite precision.			</li>
   1517 		      </ul>
   1518 			</li>
   1519 			<li>Exponential patterns may not contain grouping separators.</li>
   1520 		</ul>
   1521 		<h3>
   1522 			3.5 <a name="sigdig" href="#sigdig">Significant Digits</a>
   1523 		</h3>
   1524 		<p>There are two ways of controlling how many digits are shows:
   1525 			(a) significant digits counts, or (b) integer and fraction digit
   1526 			counts. Integer and fraction digit counts are described above. When a
   1527 			formatter is using significant digits counts, it uses however many
   1528 			integer and fraction digits are required to display the specified
   1529 			number of significant digits. It may ignore min/max integer/fraction
   1530 			digits, or it may use them to the extent possible.</p>
   1531 
   1532 		<blockquote>
   1533 			<table cellpadding="0" border="0">
   1534 				<caption>
   1535 					<a name="Significant_Digits_Examples"
   1536 						href="#Significant_Digits_Examples">Significant Digits
   1537 						Examples</a>
   1538 				</caption>
   1539 				<tr bgcolor="#ccccff">
   1540 					<th align="left">Pattern</th>
   1541 					<th align="left">Minimum significant digits</th>
   1542 					<th align="left">Maximum significant digits</th>
   1543 					<th align="left">Number</th>
   1544 					<th align="left">Output</th>
   1545 				</tr>
   1546 				<tr valign="top">
   1547 					<td><code>@@@</code></td>
   1548 					<td>3</td>
   1549 					<td>3</td>
   1550 					<td>12345</td>
   1551 					<td><code>12300</code></td>
   1552 				</tr>
   1553 				<tr valign="top" bgcolor="#eeeeff">
   1554 					<td><code>@@@</code></td>
   1555 					<td>3</td>
   1556 					<td>3</td>
   1557 					<td>0.12345</td>
   1558 					<td><code>0.123</code></td>
   1559 				</tr>
   1560 				<tr valign="top">
   1561 					<td><code>@@##</code></td>
   1562 					<td>2</td>
   1563 					<td>4</td>
   1564 					<td>3.14159</td>
   1565 					<td><code>3.142</code></td>
   1566 				</tr>
   1567 				<tr valign="top" bgcolor="#eeeeff">
   1568 					<td><code>@@##</code></td>
   1569 					<td>2</td>
   1570 					<td>4</td>
   1571 					<td>1.23004</td>
   1572 					<td><code>1.23</code></td>
   1573 				</tr>
   1574 			</table>
   1575 		</blockquote>
   1576 		<ul>
   1577 			<li>In order to enable significant digits formatting, use a
   1578 				pattern containing the <code>&#39;@&#39;</code> pattern character.
   1579 				In order to disable significant digits formatting, use a pattern
   1580 				that does not contain the <code>&#39;@&#39;</code> pattern
   1581 				character.
   1582 			</li>
   1583 			<li>Significant digit counts may be expressed using patterns
   1584 				that specify a minimum and maximum number of significant digits.
   1585 				These are indicated by the <code>&#39;@&#39;</code> and <code>&#39;#&#39;</code>
   1586 				characters. The minimum number of significant digits is the number
   1587 				of <code>&#39;@&#39;</code> characters. The maximum number of
   1588 				significant digits is the number of <code>&#39;@&#39;</code>
   1589 				characters plus the number of <code>&#39;#&#39;</code> characters
   1590 				following on the right. For example, the pattern <code>&quot;@@@&quot;</code>
   1591 				indicates exactly 3 significant digits. The pattern <code>&quot;@##&quot;</code>
   1592 				indicates from 1 to 3 significant digits. Trailing zero digits to
   1593 				the right of the decimal separator are suppressed after the minimum
   1594 				number of significant digits have been shown. For example, the
   1595 				pattern <code>&quot;@##&quot;</code> formats the number 0.1203 as <code>&quot;0.12&quot;</code>.
   1596 			</li>
   1597 			<li>Implementations may forbid the use of significant digits in
   1598 				combination with min/max integer/fraction digits. In such a case, if
   1599 				a pattern uses significant digits, it may not contain a decimal
   1600 				separator, nor the <code>&#39;0&#39;</code> pattern character.
   1601 				Patterns such as <code>&quot;@00&quot;</code> or <code>&quot;@.###&quot;</code>
   1602 				would be disallowed.
   1603 			</li>
   1604 			<li>Any number of <code>&#39;#&#39;</code> characters may be
   1605 				prepended to the left of the leftmost <code>&#39;@&#39;</code>
   1606 				character. These have no effect on the minimum and maximum
   1607 				significant digits counts, but may be used to position grouping
   1608 				separators. For example, <code>&quot;#,#@#&quot;</code> indicates a
   1609 				minimum of one significant digits, a maximum of two significant
   1610 				digits, and a grouping size of three.
   1611 			</li>
   1612 			<li>The number of significant digits has no effect on parsing.</li>
   1613 			<li>Significant digits may be used together with exponential
   1614 				notation. Such patterns are equivalent to a normal exponential
   1615 				pattern with a minimum and maximum integer digit count of one, a
   1616 				minimum fraction digit count of <code>Minimum Significant
   1617 					Digits - 1</code>, and a maximum fraction digit count of <code>Maximum
   1618 					Significant Digits - 1</code>. For example, the pattern <code>&quot;@@###E0&quot;</code>
   1619 				is equivalent to <code>&quot;0.0###E0&quot;</code>.
   1620 			</li>
   1621 		</ul>
   1622 		<h3>
   1623 			3.6 <a name="Padding" href="#Padding">Padding</a>
   1624 		</h3>
   1625 		<p>
   1626 			Patterns support padding the result to a specific width. In a pattern
   1627 			the pad escape character, followed by a single pad character, causes
   1628 			padding to be parsed and formatted. The pad escape character is
   1629 			&#39;*&#39;. For example,
   1630 			<code>&quot;$*x#,##0.00&quot;</code>
   1631 			formats 123 to
   1632 			<code>&quot;$xx123.00&quot;</code>
   1633 			, and 1234 to
   1634 			<code>&quot;$1,234.00&quot;</code>
   1635 			.
   1636 		</p>
   1637 		<ul>
   1638 			<li>When padding is in effect, the width of the positive
   1639 				subpattern, including prefix and suffix, determines the format
   1640 				width. For example, in the pattern <code>&quot;* #0
   1641 					o&#39;&#39;clock&quot;</code>, the format width is 10.
   1642 			</li>
   1643 			<li>Some parameters which usually do not matter have meaning
   1644 				when padding is used, because the pattern width is significant with
   1645 				padding. In the pattern &quot;* ##,##,#,##0.##&quot;, the format
   1646 				width is 14. The initial characters &quot;##,##,&quot; do not affect
   1647 				the grouping size or maximum integer digits, but they do affect the
   1648 				format width.</li>
   1649 			<li>Padding may be inserted at one of four locations: before the
   1650 				prefix, after the prefix, before the suffix, or after the suffix. No
   1651 				padding can be specified in any other location. If there is no
   1652 				prefix, before the prefix and after the prefix are equivalent,
   1653 				likewise for the suffix.</li>
   1654 			<li>When specified in a pattern, the code point immediately
   1655 				following the pad escape is the pad character. This may be any
   1656 				character, including a special pattern character. That is, the pad
   1657 				escape <em>escapes</em> the following character. If there is no
   1658 				character after the pad escape, then the pattern is illegal.
   1659 			</li>
   1660 		</ul>
   1661 		<h3>
   1662 			3.7 <a name="Rounding" href="#Rounding">Rounding</a>
   1663 		</h3>
   1664 		<p>Patterns support rounding to a specific increment. For example,
   1665 			1230 rounded to the nearest 50 is 1250. Mathematically, rounding to
   1666 			specific increments is performed by dividing by the increment,
   1667 			rounding to an integer, then multiplying by the increment. To take a
   1668 			more bizarre example, 1.234 rounded to the nearest 0.65 is 1.3, as
   1669 			follows:</p>
   1670 		<table border="1" cellpadding="0" cellspacing="0"
   1671 			style="border-collapse: collapse">
   1672 			<!-- nocaption -->
   1673 			<tr>
   1674 				<th>Original:</th>
   1675 				<td>1.234</td>
   1676 			</tr>
   1677 			<tr>
   1678 				<th>Divide by increment (0.65):</th>
   1679 				<td>1.89846</td>
   1680 			</tr>
   1681 			<tr>
   1682 				<th>Round:</th>
   1683 				<td>2</td>
   1684 			</tr>
   1685 			<tr>
   1686 				<th>Multiply by increment (0.65):</th>
   1687 				<td>1.3</td>
   1688 			</tr>
   1689 		</table>
   1690 		<p>To specify a rounding increment in a pattern, include the
   1691 			increment in the pattern itself. &quot;#,#50&quot; specifies a
   1692 			rounding increment of 50. &quot;#,##0.05&quot; specifies a rounding
   1693 			increment of 0.05.</p>
   1694 		<ul>
   1695 			<li>Rounding only affects the string produced by formatting. It
   1696 				does not affect parsing or change any numerical values.</li>
   1697 			<li>An implementation may allow the specification of a <em>rounding
   1698 					mode</em> to determine how values are rounded. In the absence of such
   1699 				choices, the default is to round &quot;half-even&quot;, as described
   1700 				in IEEE arithmetic. That is, it rounds towards the &quot;nearest
   1701 				neighbor&quot; unless both neighbors are equidistant, in which case,
   1702 				it rounds towards the even neighbor. Behaves as for round
   1703 				&quot;half-up&quot; if the digit to the left of the discarded
   1704 				fraction is odd; behaves as for round &quot;half-down&quot; if
   1705 				it&#39;s even. Note that this is the rounding mode that minimizes
   1706 				cumulative error when applied repeatedly over a sequence of
   1707 				calculations.
   1708 			</li>
   1709 			<li>Some locales use rounding in their currency formats to
   1710 				reflect the smallest currency denomination.</li>
   1711 			<li>In a pattern, digits &#39;1&#39; through &#39;9&#39; specify
   1712 				rounding, but otherwise behave identically to digit &#39;0&#39;.</li>
   1713 		</ul>
   1714 		<h3>
   1715 			3.8 <a name="Quoting_Rules" href="#Quoting_Rules">Quoting Rules</a>
   1716 		</h3>
   1717 		<blockquote>
   1718 			<p>
   1719 				Single quotes, (<b>&#39;</b>), enclose bits of the pattern that
   1720 				should be treated literally. Inside a quoted string, two single
   1721 				quotes (&#39;&#39;) are replaced with a single one (&#39;). For
   1722 				example:
   1723 				<tt>
   1724 					<u>&#39;X &#39;</u>#<u>&#39; Q &#39;</u>
   1725 				</tt>
   1726 				-&gt; <b>X 1939 Q </b>(Literal strings <u>underlined</u>.)
   1727 			</p>
   1728 		</blockquote>
   1729 		<h2>
   1730 			<a name="Currencies" href="#Currencies">4 Currencies</a>
   1731 		</h2>
   1732 		<p class="dtd">
   1733 			&lt;!ELEMENT currencies (alias | (default?, currency*, special*))
   1734 			&gt;<br> &lt;!ELEMENT currency (alias | (((pattern+,
   1735 			displayName*, symbol*) | (displayName+, symbol*, pattern*) |
   1736 			(symbol+, pattern*))?, decimal*, group*, special*)) &gt;<br>
   1737 			&lt;!ELEMENT symbol ( #PCDATA ) &gt;<br> &lt;!ATTLIST symbol
   1738 			choice ( true | false ) #IMPLIED &gt; &lt;!-- deprecated --&gt;
   1739 		</p>
   1740 		<blockquote>
   1741 			<p>
   1742 				<b>Note:</b> The term &quot;pattern&quot; appears twice in the
   1743 				above. The first is for consistency with all other cases of pattern
   1744 				+ displayName; the second is for backwards compatibility.
   1745 			</p>
   1746 		</blockquote>
   1747 		<pre>&lt;currencies&gt;
   1748     &lt;currency type=&quot;<span style="color: blue">USD</span>&quot;&gt;
   1749         &lt;displayName&gt;<span style="color: blue">Dollar</span>&lt;/displayName&gt;
   1750         &lt;symbol&gt;<span style="color: blue">$</span>&lt;/symbol&gt;
   1751     &lt;/currency&gt;
   1752     &lt;currency type =&quot;<span style="color: blue">JPY</span>&quot;&gt;
   1753         &lt;displayName&gt;<span style="color: blue">Yen</span>&lt;/displayName&gt;
   1754         &lt;symbol&gt;<span style="color: blue"></span>&lt;/symbol&gt;
   1755     &lt;/currency&gt;
   1756     &lt;currency type=&quot;PTE&quot;&gt;
   1757         &lt;displayName&gt;<span style="color: blue">Escudo</span>&lt;/displayName&gt;
   1758         &lt;symbol&gt;<span style="color: blue">$</span>&lt;/symbol&gt;
   1759     &lt;/currency&gt;
   1760 &lt;/currencies&gt;</pre>
   1761 		<p>In formatting currencies, the currency number format is used
   1762 			with the appropriate symbol from &lt;currencies&gt;, according to the
   1763 			currency code. The &lt;currencies&gt; list can contain codes that are
   1764 			no longer in current use, such as PTE. The choice attribute has been
   1765 			deprecated.</p>
   1766 		<p>The count attribute distinguishes the different plural forms,
   1767 			such as in the following:</p>
   1768 		<pre>&lt;currencyFormats&gt;
   1769     &lt;unitPattern count=&quot;other&quot;&gt;{0} {1}&lt;/unitPattern&gt;
   1770     
   1771 &lt;currencies&gt;</pre>
   1772 		<pre>&lt;currency type=&quot;ZWD&quot;&gt;
   1773     &lt;displayName&gt;Zimbabwe Dollar&lt;/displayName&gt;
   1774     &lt;displayName count=&quot;one&quot;&gt;Zimbabwe dollar&lt;/displayName&gt;
   1775     &lt;displayName count=&quot;other&quot;&gt;Zimbabwe dollars&lt;/displayName&gt;
   1776     &lt;symbol&gt;Z$&lt;/symbol&gt;
   1777 &lt;/currency&gt;</pre>
   1778 		<p>
   1779 			To format a particular currency value &quot;ZWD&quot; for a
   1780 			particular numeric value <em>n</em> using the (long) display name:
   1781 		</p>
   1782 		<ol>
   1783 			<li>If the numeric value is exactly 0 or 1, first
   1784 				see if there is a count with a matching explicit
   1785 				number (0 or 1). If so, use that string (see
   1786 				<a href="#Explicit_0_1_rules">Explicit 0 and 1 rules</a>).</li>
   1787 			<li>Otherwise, determine the count value that corresponds to <em>n</em>
   1788 				using the rules in <i><a href="#Language_Plural_Rules">Section
   1789 						5 - Language Plural Rules</a></i></li>
   1790 			<li style="margin-top: 0.5em; margin-bottom: 0.5em">Next, get
   1791 				the currency unitPattern.
   1792 				<ol>
   1793 					<li>Look for a unitPattern element that matches the count
   1794 						value, starting in the current locale and then following the
   1795 						locale fallback chain up to, but not including root.</li>
   1796 					<li>If no matching unitPattern element was found in the
   1797 						previous step, then look for a unitPattern element that matches
   1798 						count=&quot;other&quot;, starting in the current locale and then
   1799 						following the locale fallback chain up to root (which has a
   1800 						unitPattern element with count=&quot;other&quot; for every unit
   1801 						type).</li>
   1802 					<li>The resulting unitPattern element indicates the
   1803 						appropriate positioning of the numeric value and the currency
   1804 						display name.</li>
   1805 				</ol>
   1806 			</li>
   1807 			<li style="margin-top: 0.5em; margin-bottom: 0.5em">Next, get
   1808 				the displayName element for the currency.
   1809 				<ol>
   1810 					<li>Look for a displayName element that matches the count
   1811 						value, starting in the current locale and then following the
   1812 						locale fallback chain up to, but not including root.</li>
   1813 					<li>If no matching displayName element was found in the
   1814 						previous step, then look for a displayName element that matches
   1815 						count=&quot;other&quot;, starting in the current locale and then
   1816 						following the locale fallback chain up to, but not including root.</li>
   1817 					<li>If no matching displayName element was found in the
   1818 						previous step, then look for a displayName element that with no
   1819 						count, starting in the current locale and then following the
   1820 						locale fallback chain up to root.</li>
   1821 					<li>If there is no displayName element, use the currency code
   1822 						itself (for example, &quot;ZWD&quot;).</li>
   1823 				</ol>
   1824 			</li>
   1825 			<li>Format the numeric value according to the locale. Use the
   1826 				locales &lt;decimalFormats &gt; pattern, not the
   1827 				&lt;currencyFormats&gt; pattern that is used with the symbol (eg,
   1828 				Z$). As when formatting symbol currency values, reset the number of
   1829 				decimals according to the supplemental &lt;currencyData&gt; and use
   1830 				the currencyDecimal symbol if different from the decimal symbol.
   1831 				<ol>
   1832 					<li>The number of decimals should be overridable in an API, so
   1833 						that clients can choose between 2 US dollars and 2.00 US
   1834 						dollars.</li>
   1835 				</ol>
   1836 			</li>
   1837 			<li>Substitute the formatted numeric value for the {0} in the
   1838 				unitPattern, and the currency display name for the {1}.</li>
   1839 		</ol>
   1840 		<p>While for English this may seem overly complex, for some other
   1841 			languages different plural forms are used for different unit types;
   1842 			the plural forms for certain unit types may not use all of the
   1843 			plural-form tags defined for the language.</p>
   1844 		<p>For example, if the the currency is ZWD and the number is 1234,
   1845 			then the latter maps to count=&quot;other&quot; for English. The unit
   1846 			pattern for that is &quot;{0} {1}&quot;, and the display name is
   1847 			&quot;Zimbabwe dollars&quot;. The final formatted number is then
   1848 			&quot;1,234 Zimbabwe dollars&quot;.</p>
   1849 		<p>When the currency symbol is substituted into a pattern, there
   1850 			may be some further modifications, according to the following.</p>
   1851 		<pre>&lt;currencySpacing&gt;
   1852   &lt;beforeCurrency&gt;
   1853     &lt;currencyMatch&gt;[:letter:]&lt;/currencyMatch&gt;
   1854     &lt;surroundingMatch&gt;[:digit:]&lt;/surroundingMatch&gt;
   1855     &lt;insertBetween&gt;&amp;#x00a0;&lt;/insertBetween&gt;
   1856   &lt;/beforeCurrency&gt;
   1857   &lt;afterCurrency&gt;
   1858     &lt;currencyMatch&gt;[:letter:]&lt;/currencyMatch&gt;
   1859     &lt;surroundingMatch&gt;[:digit:]&lt;/surroundingMatch&gt;
   1860     &lt;insertBetween&gt;&amp;#x00a0;&lt;/insertBetween&gt;
   1861   &lt;/afterCurrency&gt;
   1862 &lt;/currencySpacing&gt;
   1863 </pre>
   1864 		<p>
   1865 			This element controls whether additional characters are inserted on
   1866 			the boundary between the symbol and the pattern. For example, with
   1867 			the above <i>currencySpacing</i>, inserting the symbol
   1868 			&quot;US$&quot; into the pattern &quot;#,##0.00&quot; would result
   1869 			in an extra <i>no-break space</i> inserted before the symbol, for
   1870 			example, &quot;#,##0.00 US$&quot;. The <i>beforeCurrency</i> element
   1871 			governs this case, since we are looking <i>before</i> the
   1872 			&quot;&quot; symbol. The <i>currencyMatch</i> is positive, since the
   1873 			&quot;U&quot; in &quot;US$&quot; is at the start of the currency
   1874 			symbol being substituted. The <i>surroundingMatch</i> is positive,
   1875 			since the character just before the &quot;&quot; will be a digit.
   1876 			Because these two conditions are true, the insertion is made.
   1877 		</p>
   1878 		<p>
   1879 			Conversely, look at the pattern &quot;#,##0.00&quot; with the symbol
   1880 			&quot;US$&quot;. In this case, there is no insertion; the result is
   1881 			simply &quot;US$#,##0.00&quot;. The <i>afterCurrency</i> element
   1882 			governs this case, since we are looking <i>after</i> the
   1883 			&quot;&quot; symbol. The surroundingMatch is positive, since the
   1884 			character just after the &quot;&quot; will be a digit. However, the
   1885 			currencyMatch is <b>not</b> positive, since the &quot;$&quot; in
   1886 			&quot;US$&quot; is at the end of the currency symbol being
   1887 			substituted. So the insertion is not made.
   1888 		</p>
   1889 		<p>
   1890 			For more information on the matching used in the currencyMatch and
   1891 			surroundingMatch elements, see the main document <i><a
   1892 				href="tr35.html#Unicode_Sets">Appendix E: Unicode Sets</a></i>.
   1893 		</p>
   1894 		<p>
   1895 			Currencies can also contain optional grouping, decimal data, and
   1896 			pattern elements. This data is inherited from the &lt;symbols&gt; in
   1897 			the same locale data (if not present in the chain up to root), so
   1898 			only the <i>differing</i> data will be present. See the main document
   1899 			<i>Section 4.1 <a href="tr35.html#Multiple_Inheritance">Multiple
   1900 					Inheritance</a></i>.
   1901 		</p>
   1902 		<blockquote>
   1903 			<p class="note">
   1904 				<b>Note: </b><i>Currency values should <b>never</b> be
   1905 					interchanged without a known currency code. You never want the
   1906 					number 3.5 interpreted as $3.50 by one user and 3.50 by another.
   1907 				</i>Locale data contains localization information for currencies, not a
   1908 				currency value for a country. A currency amount logically consists
   1909 				of a numeric value, plus an accompanying currency code (or
   1910 				equivalent). The currency code may be implicit in a protocol, such
   1911 				as where USD is implicit. But if the raw numeric value is
   1912 				transmitted without any context, then it has no definitive
   1913 				interpretation.
   1914 			</p>
   1915 		</blockquote>
   1916 		<p class="note">Notice that the currency code is completely
   1917 			independent of the end-user&#39;s language or locale. For example,
   1918 			BGN is the code for Bulgarian Lev. A currency amount of &lt;BGN,
   1919 			1.2345610&gt; would be localized for a Bulgarian user into &quot;1
   1920 			234,56 .&quot; (using Cyrillic letters). For an English user it
   1921 			would be localized into the string &quot;BGN 1,234.56&quot; The
   1922 			end-user&#39;s language is needed for doing this last localization
   1923 			step; but that language is completely orthogonal to the currency code
   1924 			needed in the data. After all, the same English user could be working
   1925 			with dozens of currencies. Notice also that the currency code is also
   1926 			independent of whether currency values are inter-converted, which
   1927 			requires more interesting financial processing: the rate of
   1928 			conversion may depend on a variety of factors.</p>
   1929 		<p class="note">Thus logically speaking, once a currency amount is
   1930 			entered into a system, it should be logically accompanied by a
   1931 			currency code in all processing. This currency code is independent of
   1932 			whatever the user&#39;s original locale was. Only in badly-designed
   1933 			software is the currency code (or equivalent) not present, so that
   1934 			the software has to &quot;guess&quot; at the currency code based on
   1935 			the user&#39;s locale.</p>
   1936 		<blockquote>
   1937 			<p class="note">
   1938 				<b>Note: </b>The number of decimal places <b>and</b> the rounding
   1939 				for each currency is not locale-specific data, and is not contained
   1940 				in the Locale Data Markup Language format. Those values override
   1941 				whatever is given in the currency numberFormat. For more
   1942 				information, see <i> <a href="#Supplemental_Currency_Data">Supplemental
   1943 						Currency Data</a></i>.
   1944 			</p>
   1945 		</blockquote>
   1946 		<p>
   1947 			For background information on currency names, see [<a
   1948 				href="tr35.html#CurrencyInfo">CurrencyInfo</a>].
   1949 		</p>
   1950 
   1951 		<h3>
   1952 			4.1 <a name="Supplemental_Currency_Data"
   1953 				href="#Supplemental_Currency_Data">Supplemental Currency Data</a>
   1954 		</h3>
   1955 		<p class="dtd">
   1956 			&lt;!ELEMENT currencyData ( fractions*, region+ ) &gt;<br>
   1957 			&lt;!ELEMENT fractions ( info+ ) &gt;<br> <br> &lt;!ELEMENT
   1958 			info EMPTY &gt;<br> &lt;!ATTLIST info iso4217 NMTOKEN #REQUIRED
   1959 			&gt;<br> &lt;!ATTLIST info digits NMTOKEN #IMPLIED &gt;<br>
   1960 			&lt;!ATTLIST info rounding NMTOKEN #IMPLIED &gt;<br>
   1961 			&lt;!ATTLIST info cashDigits NMTOKEN #IMPLIED &gt;<br>
   1962 			&lt;!ATTLIST info cashRounding NMTOKEN #IMPLIED &gt;<br> <br>
   1963 			&lt;!ELEMENT region ( currency* ) &gt;<br> &lt;!ATTLIST region
   1964 			iso3166 NMTOKEN #REQUIRED &gt;<br> <br> &lt;!ELEMENT
   1965 			currency ( alternate* ) &gt;<br> &lt;!ATTLIST currency from
   1966 			NMTOKEN #IMPLIED &gt;<br> &lt;!ATTLIST currency to NMTOKEN
   1967 			#IMPLIED &gt;<br> &lt;!ATTLIST currency iso4217 NMTOKEN
   1968 			#REQUIRED &gt;<br> &lt;!ATTLIST currency tender ( true | false )
   1969 			#IMPLIED &gt;
   1970 		</p>
   1971 		<p>Each currencyData element contains one fractions element
   1972 			followed by one or more region elements. Here is an example for
   1973 			illustration.</p>
   1974 		<pre>&lt;supplementalData&gt;
   1975   &lt;currencyData&gt;
   1976     &lt;fractions&gt;
   1977       
   1978       &lt;info iso4217=&quot;CHF&quot; digits=&quot;2&quot; rounding=&quot;5&quot;/&gt;
   1979       
   1980       &lt;info iso4217=&quot;<span style="color: blue">ITL</span>&quot; digits=&quot;<span
   1981 				style="color: blue">0</span>&quot;/&gt;
   1982       
   1983     &lt;/fractions&gt;
   1984     
   1985     &lt;region iso3166=&quot;IT&quot;&gt;
   1986       &lt;currency iso4217=&quot;EUR&quot; from=&quot;1999-01-01&quot;/&gt;
   1987       &lt;currency iso4217=&quot;ITL&quot; from=&quot;1862-8-24&quot; to=&quot;2002-02-28&quot;/&gt;
   1988     &lt;/region&gt;
   1989     
   1990     &lt;region iso3166=&quot;CS&quot;&gt;
   1991       &lt;currency iso4217=&quot;EUR&quot; from=&quot;2003-02-04&quot;/&gt;
   1992       &lt;currency iso4217=&quot;CSD&quot; from=&quot;2002-05-15&quot;/&gt;
   1993       &lt;currency iso4217=&quot;YUM&quot; from=&quot;1994-01-24&quot; to=&quot;2002-05-15&quot;/&gt;
   1994     &lt;/region&gt;
   1995     
   1996   &lt;/currencyData&gt;
   1997 
   1998 &lt;/supplementalData&gt;</pre>
   1999 		<p>The fractions element contains any number of info elements,
   2000 			with the following attributes:</p>
   2001 		<ul>
   2002 			<li><b>iso4217: </b>the ISO 4217 code for the currency in
   2003 				question. If a particular currency does not occur in the fractions
   2004 				list, then it is given the defaults listed for the next two
   2005 				attributes.</li>
   2006 			<li><b>digits: </b>the minimum and maximum number of decimal
   2007 				digits normally formatted. The default is 2. For example, in the
   2008 				en_US locale with the default value of 2 digits, the value 1 USD
   2009 				would format as "$1.00", and the value 1.123 USD would format as 
   2010 				"$1.12".</li>
   2011 			<li><b>rounding: </b>the rounding increment, in units of 10<sup>-digits</sup>.
   2012 				The default is 0, which means no rounding is to be done. Therefore,
   2013 				rounding=0 and rounding=1 have identical behavior. Thus with
   2014 				fraction digits of 2 and rounding increment of 5, numeric values are
   2015 				rounded to the nearest 0.05 units in formatting. With fraction
   2016 				digits of 0 and rounding increment of 50, numeric values are rounded
   2017 				to the nearest 50.</li>
   2018 			<li><b>cashDigits: </b>the number of decimal digits to be used
   2019 				when formatting quantities used in cash transactions (as opposed to
   2020 				a quantity that would appear in a more formal setting, such as on a
   2021 				bank statement). If absent, the value of "digits" should be used as
   2022 				a default.</li>
   2023 			<li><b>cashRounding: </b>the cash rounding increment, in units
   2024 				of 10<sup>-cashDigits</sup>. The default is 0, which means no
   2025 				rounding is to be done; and as with rounding, this has the same
   2026 				effect as cashRounding="1". This is the rounding increment to be
   2027 				used when formatting quantities used in cash transactions (as
   2028 				opposed to a quantity that would appear in a more formal setting,
   2029 				such as on a bank statement). If absent, the value of "rounding"
   2030 				should be used as a default.</li>
   2031 		</ul>
   2032 		<p>For example, the following line</p>
   2033 		<pre>    &lt;info iso4217="CZK" digits="2" rounding="0"/&gt;</pre>
   2034 		<p>should cause the value 2.006 to be displayed as 2.01, not
   2035 			2.00.</p>
   2036 		<p>Each region element contains one attribute:</p>
   2037 		<ul>
   2038 			<li><b>iso3166:</b> the ISO 3166 code for the region in
   2039 				question. The special value <i>XXX</i> can be used to indicate that
   2040 				the region has no valid currency or that the circumstances are
   2041 				unknown (usually used in conjunction with <i>before</i>, as
   2042 				described below).</li>
   2043 		</ul>
   2044 		<p>And can have any number of currency elements, with the ordered
   2045 			subelements.</p>
   2046 		<pre>    &lt;region iso3166=&quot;IT&quot;&gt; &lt;!-- Italy --&gt;
   2047       &lt;currency iso4217=&quot;EUR&quot; from=&quot;2002-01-01&quot;/&gt;
   2048       &lt;currency iso4217=&quot;ITL&quot; to=&quot;2001-12-31&quot;/&gt;
   2049     &lt;/region&gt;</pre>
   2050 		<ul>
   2051 			<li><b>iso4217: </b>the ISO 4217 code for the currency in
   2052 				question. Note that some additional codes that were in widespread
   2053 				usage are included, others such as GHP are not included because they
   2054 				were never used.</li>
   2055 			<li><b>from: </b>the currency was valid from to the datetime
   2056 				indicated by the value. See the main document <i>Section 5.2.1 <a
   2057 					href="tr35.html#Date_Ranges">Dates and Date Ranges</a>
   2058 			</i>.</li>
   2059 			<li><b>to: </b>the currency was valid up to the datetime
   2060 				indicated by the value of <i>before</i>. See the main document <i>Section
   2061 					5.2.1 <a href="tr35.html#Date_Ranges">Dates and Date Ranges</a>
   2062 			</i>.</li>
   2063 			<li>
   2064 				<p>
   2065 					<b>tender: </b>indicates whether or not the ISO currency code
   2066 					represents a currency that was or is legal tender in some country.
   2067 					The default is &quot;true&quot;. Certain ISO codes represent things
   2068 					like financial instruments or precious metals, and do not represent
   2069 					normally interchanged currencies.
   2070 				</p>
   2071 			</li>
   2072 		</ul>
   2073 		<p>
   2074 			That is, each currency element will list an interval in which it was
   2075 			valid. The <i>ordering</i> of the elements in the list tells us which
   2076 			was the primary currency during any period in time. Here is an
   2077 			example of such an overlap:
   2078 		</p>
   2079 		<pre>&lt;currency iso4217=&quot;CSD&quot; to=&quot;2002-05-15&quot;/&gt;
   2080 &lt;currency iso4217=&quot;YUD&quot; from=&quot;1994-01-24&quot; to=&quot;2002-05-15&quot;/&gt;
   2081 &lt;currency iso4217=&quot;YUN&quot; from=&quot;1994-01-01&quot; to=&quot;1994-07-22&quot;/&gt;</pre>
   2082 		<p>
   2083 			The <i>from</i> element is limited by the fact that ISO 4217 does not
   2084 			go very far back in time, so there may be no ISO code for the
   2085 			previous currency.
   2086 		</p>
   2087 		<p>Currencies change relatively frequently. There are different
   2088 			types of changes:</p>
   2089 		<ol>
   2090 			<li>YU=&gt;CS (name change)</li>
   2091 			<li>CS=&gt;RS+ME (split, different names)</li>
   2092 			<li>SD=&gt;SD+SS (split, same name for one // South Sudan splits
   2093 				from Sudan)</li>
   2094 			<li>DE+DD=&gt;DE (Union, reuses one name // East Germany unifies
   2095 				with Germany)</li>
   2096 		</ol>
   2097 		<p>
   2098 			The <a
   2099 				href="http://unstats.un.org/unsd/methods/m49/m49chang.htm#ftnq">UN
   2100 				Information</a>&nbsp; is used to determine dates due to country changes.
   2101 		</p>
   2102 		<p>When a code is no longer in use, it is terminated (see #1, #2,
   2103 			#4, #5)</p>
   2104 		<blockquote>
   2105 			<p>Example:</p>
   2106 			<ul>
   2107 				<li>&lt;currency iso4217=&quot;EUR&quot;
   2108 					from=&quot;2003-02-04&quot; to=&quot;2006-06-03&quot;/&gt;</li>
   2109 			</ul>
   2110 		</blockquote>
   2111 		<p>When codes split, each of the new codes inherits (see #2, #3)
   2112 			the previous data. However, some modifications can be made if it is
   2113 			clear that currencies were only in use in one of the parts.</p>
   2114 		<p>When codes merge, the data is copied from the most populous
   2115 			part.</p>
   2116 		<blockquote>
   2117 			<p>Example. When CS split into RS and ME:</p>
   2118 			<ul>
   2119 				<li>RS &amp; ME copy the former CS, except that the line for
   2120 					EUR is dropped from RS</li>
   2121 				<li>CS now terminates on Jun 3, 2006 (following the UN info)</li>
   2122 			</ul>
   2123 		</blockquote>
   2124 		<h2>
   2125 			<a name="Language_Plural_Rules" href="#Language_Plural_Rules">5
   2126 				Language Plural Rules</a>
   2127 		</h2>
   2128 		<p class="dtd">
   2129 			&lt;!ELEMENT plurals (pluralRules*, pluralRanges*) &gt;<br>
   2130 			&lt;!ATTLIST plurals type ( ordinal | cardinal ) #IMPLIED &gt;
   2131 			&lt;!-- default is cardinal --&gt;<br> <br> &lt;!ELEMENT
   2132 			pluralRules (pluralRule*) &gt;<br> &lt;!ATTLIST pluralRules
   2133 			locales NMTOKENS #REQUIRED &gt;<br> <br> &lt;!ELEMENT
   2134 			pluralRule ( #PCDATA ) &gt;<br> &lt;!ATTLIST pluralRule count
   2135 			(zero | one | two | few | many | other) #REQUIRED &gt;
   2136 		</p>
   2137 		<p>The plural categories are used to format messages with numeric
   2138 			placeholders, expressed as decimal numbers. The fundamental rule for
   2139 			determining plural categories is the existence of minimal pairs:
   2140 			whenever two different numbers may require different versions of the
   2141 			same message, then the numbers have different plural categories.</p>
   2142 		<p>This happens even if nouns are invariant; even if all English
   2143 			nouns were invariant (like &ldquo;sheep&rdquo;), English would still
   2144 			require 2 plural categories because of subject-verb agreement, and
   2145 			pronoun agreement. For example:</p>
   2146 		<ol>
   2147 			<li>1 sheep <strong>is</strong> here. Do you want to buy <strong>it</strong>?
   2148 			</li>
   2149 			<li>2 sheep <strong>are</strong> here. Do you want to buy <strong>them</strong>?
   2150 			</li>
   2151 		</ol>
   2152 		<p>
   2153 			For more information, see <a
   2154 				href="http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories">Determining-Plural-Categories</a>.
   2155 		</p>
   2156 		<p>English does not have a separate plural category for
   2157 			&ldquo;zero&rdquo;, because it does not require a different message
   2158 			for &ldquo;0&rdquo;. For example, the same message can be used below,
   2159 			with just the numeric placeholder changing.</p>
   2160 		<ol>
   2161 			<li>
   2162 				<p>You have 3 friends online.</p>
   2163 			</li>
   2164 			<li>
   2165 				<p>You have 0 friends online.</p>
   2166 			</li>
   2167 		</ol>
   2168 		<p>However, across many languages it is commonly more natural to
   2169 			express &quot;0&quot; messages with a negative (&ldquo;None of your
   2170 			friends are online.&rdquo;) and &quot;1&quot; messages also with an
   2171 			alternate form &ldquo;You have a friend online.&rdquo;. Thus
   2172 			pluralized message APIs should also offer the ability to specify at
   2173 			least the 0 and 1 cases explicitly; developers can use that ability
   2174 			whenever these values might occur in a placeholder.</p>
   2175 
   2176 		<p>The CLDR plural rules are not expected to cover all cases. For example, strictly speaking, there could be more plural and ordinal forms for English.  Formally, we have a different plural form where a change in digits forces a change in the rest of the sentence. There is an edge case  in English because of the behavior of &quot;a/an&quot;.</p>
   2177 		<p>For example, in changing from 3 to 8:</p>
   2178 		<ul>
   2179 		  <li>&quot;a 3rd of a loaf&quot; should result in &quot;an 8th of a loaf&quot;, not &quot;a 8th of a loaf&quot;</li>
   2180 		  <li>&quot;a 3 foot stick&quot; should result in &quot;an 8 foot stick&quot;, not &quot;a 8 foot stick&quot;</li>
   2181 	  </ul>
   2182 		<p>So numbers of the following forms could have a special plural category and special ordinal category: 8(X), 11(X), 18(X), 8x(X), where x is 0..9 and the optional X is 00, 000, 00000, and so on.</p>
   2183 		<p>On the other hand, the above constructions are relatively rare in messages  constructed using numeric placeholders, so the disruption for implementations currently using CLDR plural categories wouldn't be worth the small gain.</p>
   2184 		<p>This section defines the types of plural forms that exist in a
   2185 			languagenamely, the cardinal and ordinal plural forms. Cardinal
   2186 			plural forms express units such as time, currency or distance, used
   2187 			in conjunction with a number expressed in decimal digits (i.e.
   2188 			&quot;2&quot;, not &quot;two&quot;, and not an indefinite number such
   2189 			as &quot;some&quot; or &quot;many&quot;). Ordinal plural forms denote
   2190 			the order of items in a set and are always integers. For example,
   2191 			English has two forms for cardinals:</p>
   2192 		<ul>
   2193 			<li>form &quot;one&quot;: 1 day</li>
   2194 			<li>form &quot;other&quot;: 0 days, 2 days, 10 days, 0.3 days</li>
   2195 		</ul>
   2196 		<p>and four forms for ordinals:</p>
   2197 		<ul>
   2198 			<li>form &quot;one&quot;: 1st floor, 21st floor, 101st floor</li>
   2199 			<li>form &quot;two&quot;: 2nd floor, 22nd floor, 102nd floor</li>
   2200 			<li>form &quot;few&quot;: 3rd floor, 23rd floor, 103rd floor</li>
   2201 			<li>form &quot;other&quot;: 4th floor, 11th floor, 96th floor</li>
   2202 		</ul>
   2203 		<p>Other languages may have additional forms or only one form for
   2204 			each type of plural. CLDR provides the following tags for designating
   2205 			the various plural forms of a language; for a given language, only
   2206 			the tags necessary for that language are defined, along with the
   2207 			specific numeric ranges covered by each tag (for example, the plural
   2208 			form &quot;few&quot; may be used for the numeric range 24 in one
   2209 			language and 39 in another):</p>
   2210 		<ul>
   2211 			<li>zero (see also plural case 0, described in
   2212 				<a href="#Explicit_0_1_rules">Explicit 0 and 1 rules</a>)</li>
   2213 			<li>one (see also plural case 1, described in
   2214 				<a href="#Explicit_0_1_rules">Explicit 0 and 1 rules</a>)</li>
   2215 			<li>two</li>
   2216 			<li>few</li>
   2217 			<li>many</li>
   2218 
   2219 
   2220 				
   2221 		</ul>
   2222 		<p>In addition, an &quot;other&quot; tag is always implicitly
   2223 			defined to cover the forms not explicitly designated by the tags
   2224 			defined for a language. This &quot;other&quot; tag is also used for
   2225 			languages that only have a single form (in which case no plural-form
   2226 			tags are explicitly defined for the language). For a more complex
   2227 			example, consider the cardinal rules for Russian and certain other
   2228 			languages:</p>
   2229 		<pre>&lt;pluralRules locales=&quot;hr ru sr uk&quot;&gt;
   2230 	&lt;pluralRules count=&quot;one&quot;&gt;<span style="color: blue">n mod 10 is 1 and n mod 100 is not 11</span>&lt;/pluralRule&gt;
   2231 	&lt;pluralRules count=&quot;few&quot;&gt;<span style="color: blue">n mod 10 in 2..4 and n mod 100 not in 12..14</span>&lt;/pluralRule&gt;
   2232 &lt;/pluralRules&gt;</pre>
   2233 		<p>These rules specify that Russian has a &quot;one&quot; form
   2234 			(for 1, 21, 31, 41, 51, ), a &quot;few&quot; form (for 24, 2224,
   2235 			3234, ), and implicitly an &quot;other&quot; form (for everything
   2236 			else: 0, 520, 2530, 3540, , decimals). Russian does not need
   2237 			additional separate forms for zero, two, or many, so these are not
   2238 			defined.</p>
   2239 		<p>The plural category for negative numbers is
   2240 			calculated according to the absolute value of the source. (This may
   2241 			change in the future, if we find languages that have different
   2242 			behavior.)</p>
   2243 		<p>
   2244 			Plural categories may also differ according to the visible decimals. For example, here are some
   2245 			of the behaviors exhibited by different languages:
   2246 		</p>
   2247 		<div dir="ltr">
   2248 			<table>
   2249 				<!-- nocaption -->
   2250 				<tr>
   2251 					<th>Behavior</th>
   2252 					<th>Description</th>
   2253 					<th>Example</th>
   2254 				</tr>
   2255 				<tr>
   2256 					<td>Base</td>
   2257 					<td>The fractions are ignored; the category is the same as the
   2258 						category of the integer.</td>
   2259 					<td>1.13 has the same plural category as 1.</td>
   2260 				</tr>
   2261 				<tr>
   2262 					<td>Separate</td>
   2263 					<td>All fractions by value are in one category (typically
   2264 						&lsquo;other&rsquo; = &lsquo;plural&rsquo;).</td>
   2265 					<td>1.01 gets the same class as 9;<br>1.00 gets the same
   2266 						category as 1.
   2267 					</td>
   2268 				</tr>
   2269 				<tr>
   2270 					<td>Visible</td>
   2271 					<td>All visible fractions are in one category (typically
   2272 						&lsquo;other&rsquo; = &lsquo;plural).</td>
   2273 					<td>1.00, 1.01, 3.5 all get the same category.</td>
   2274 				</tr>
   2275 				<tr>
   2276 					<td>Digits</td>
   2277 					<td>The visible fraction determines the category.</td>
   2278 					<td>1.13 gets the same class as 13.</td>
   2279 				</tr>
   2280 			</table>
   2281 		</div>
   2282 		<br>
   2283 		<p>There are also variants of the above: for example, short
   2284 			fractions may have the Digits behavior, but longer fractions may just
   2285 			look at the final digit of the fraction.</p>
   2286 
   2287 		<h4>
   2288 			<a name="Explicit_0_1_rules" href="#Explicit_0_1_rules">Explicit 0 and 1 rules</a>
   2289 		</h4>
   2290 		<p >
   2291 			Some types of CLDR data (such as
   2292 			<a href="tr35-general.html#Unit_Elements">unitPatterns</a> and
   2293 			<a href="#Currencies">currency displayNames</a>) allow specification of plural
   2294 			rules for explicit cases 0 and 1, in addition to the language-specific
   2295 			plural cases specified above: zero, one, two ... other. For the
   2296 			language-specific plural rules:</p>
   2297 			<ul>
   2298 			<li>The rules depend on language; for a given language, only a subset of the
   2299 				cases may be defined. For example, English only defines one and other,
   2300 				cases like two and few cannot be used in plurals for English CLDR
   2301 				items.</li>
   2302 			<li>Each plural case may cover multiple numeric values, and may depend on the
   2303 				formatting of those values. For example, in French the one case covers
   2304 				0.0 through 1.99.</li>
   2305 			<li>The one case, if defined, includes at least some formatted forms of the
   2306 				numeric value 1; the zero case, if defined, includes at least some
   2307 				formatted forms of the numeric value 0.</li>
   2308 			</ul>
   2309 		<p>By contrast, for the explicit cases 0 and 1:</p>
   2310 			<ul>
   2311 			<li>The explicit 0 and 1 cases are not defined by language-specific rules,
   2312 				and are available in any language for the CLDR data items that accept them.</li>
   2313 			<li>The explicit 0 and 1 cases apply to the exact numeric values 0 and 1
   2314 				respectively. These cases are typically used for plurals of items that
   2315 				do not have fractional value, like books or files.</li>
   2316 			<li>The explicit 0 and 1 cases have precedence over the zero and one
   2317 				cases. For example, if for a particular element CLDR data includes values
   2318 				for both the 1 and one cases, then the 1 value is used for numeric
   2319 				values of exactly 1, while the one value is used for any other formatted
   2320 				numeric values matching the one plural rule for the language.</li>
   2321 			</ul>
   2322 		<p>Usage example: In English (which only defines language-specific
   2323 			rules for one and other) this can be used to have  special behavior for 0:</p>
   2324 			<ul>
   2325 			<li>count=0: no books</li>
   2326 			<li>count=one: {0} book, e.g. 1 book</li>
   2327 			<li>count=other: {0} books, e.g. 3 books</li>
   2328 			</ul>
   2329 
   2330 		<h3>
   2331 			5.1 <a name="Plural_rules_syntax" href="#Plural_rules_syntax">Plural
   2332 				rules syntax</a>
   2333 		</h3>
   2334 		<p>
   2335 			The xml value for each pluralRule is a <em>condition</em> with a
   2336 			boolean result that specifies whether that rule (i.e. that plural
   2337 			form) applies to a given numeric value <em>n</em>, where n can be
   2338 			expressed as a decimal fraction. Clients of CLDR may express all the
   2339 			rules for a locale using the following syntax:
   2340 		</p>
   2341 		<pre>rules = rule (';' rule)*<br>rule = keyword ':' condition samples<br>| 'other' ':' samples<br>keyword = [a-z]+<br>keyword = [a-z]+</pre>
   2342 		<p>In CLDR, the keyword is the attribute value of 'count'. Those
   2343 			values in CLDR are currently limited to just what is in the DTD, but
   2344 			clients may support other values.</p>
   2345 		<p>The conditions themselves have the following syntax.</p>
   2346 		<pre>condition = and_condition ('or' and_condition)*
   2347 samples       = ('@integer' sampleList)?<br>('@decimal' sampleList)?
   2348 and_condition = relation ('and' relation)*<br>relation = is_relation | in_relation | within_relation <br>is_relation = expr 'is' ('not')? value<br>in_relation = expr (('not')? 'in' | '=' | '!=') range_list<br>within_relation = expr ('not')? 'within' range_list<br>expr = operand (('mod' | '%') value)?
   2349 operand       = 'n' | 'i' | 'f' | 't' | 'v' | 'w'<br>range_list = (range | value) (',' range_list)*<br>range = value'..'value
   2350 sampleList    = sampleRange (',' sampleRange)* (',' (''|'...'))?
   2351 sampleRange   = decimalValue ('~' decimalValue)?
   2352 value = digit+
   2353 decimalValue  = value ('.' value)?<br>digit = 0|1|2|3|4|5|6|7|8|9
   2354 		</pre>
   2355 		<ul>
   2356 			<li>Whitespace (defined as Unicode <a
   2357 				href="http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5Cp%7BPattern_White_Space%7D">Pattern_White_Space</a>)
   2358 				can occur between or around any of the above tokens, with the
   2359 				exception of the tokens in value, digit, and decimalValue.
   2360 			</li>
   2361 			<li>In the syntax, <strong>and</strong> binds more tightly than
   2362 				<strong>or</strong>. So <strong>X or Y and Z</strong> is interpreted
   2363 				as <strong>(X or (Y and Z))</strong>.
   2364 			</li>
   2365 			<li>Each plural rule must be written to be self-contained, and
   2366 				not depend on the ordering. Thus rules must be mutually exclusive;
   2367 				for a given numeric value, only one rule can apply (i.e., the
   2368 				condition can only be true for one of the pluralRule elements. Each
   2369 				keyword can have at most one condition. The 'other' keyword must
   2370 				have an empty condition: it is only present for samples.</li>
   2371 			<li>The samples should be included, since they are used by
   2372 				client software for samples and determining whether the keyword has
   2373 				finite values or not.</li>
   2374 			<li>The 'other' keyword must have no condition, and all other
   2375 				keywords must have a condition.</li>
   2376 		</ul>
   2377 		<h4>
   2378 			<a name="Operands" href="#Operands">5.1.1 Operands</a>
   2379 		</h4>
   2380 		<p>The operands have the following meaning:</p>
   2381 		<div dir="ltr">
   2382 			<table>
   2383 				<caption>
   2384 					<a name="Plural_Operand_Meanings" href="#Plural_Operand_Meanings">Plural
   2385 						Operand Meanings</a>
   2386 				</caption>
   2387 				<tr>
   2388 					<th>Symbol</th>
   2389 					<th>Value</th>
   2390 				</tr>
   2391 				<tr>
   2392 					<td>n</td>
   2393 					<td>absolute value of the source number (integer and
   2394 						decimals).</td>
   2395 				</tr>
   2396 				<tr>
   2397 					<td>i</td>
   2398 					<td>integer digits of n.</td>
   2399 				</tr>
   2400 				<tr>
   2401 					<td>v</td>
   2402 					<td>number of visible fraction digits in n, <em>with</em>
   2403 						trailing zeros.
   2404 					</td>
   2405 				</tr>
   2406 				<tr>
   2407 					<td>w</td>
   2408 					<td>number of visible fraction digits in n, <em>without</em>
   2409 						trailing zeros.
   2410 					</td>
   2411 				</tr>
   2412 				<tr>
   2413 					<td>f</td>
   2414 					<td>visible fractional digits in n, <em>with</em> trailing
   2415 						zeros.
   2416 					</td>
   2417 				</tr>
   2418 				<tr>
   2419 					<td>t</td>
   2420 					<td>visible fractional digits in n, <em>without</em> trailing
   2421 						zeros.
   2422 					</td>
   2423 				</tr>
   2424 			</table>
   2425 		</div>
   2426 		<br>
   2427 
   2428 		<div dir="ltr">
   2429 			<table>
   2430 				<caption>
   2431 					<a name="Plural_Operand_Examples" href="#Plural_Operand_Examples">Plural
   2432 						Operand Examples</a>
   2433 				</caption>
   2434 				<colgroup>
   2435 					<col width="10%">
   2436 					<col width="10%">
   2437 					<col width="10%">
   2438 					<col width="10%">
   2439 					<col width="10%">
   2440 					<col width="10%">
   2441 				</colgroup>
   2442 				<tr>
   2443 					<th><strong>n</strong></th>
   2444 					<th><div align="center">i</div></th>
   2445 					<th><div align="center">v</div></th>
   2446 					<th><div align="center">w</div></th>
   2447 					<th><div align="center">f</div></th>
   2448 					<th><div align="center">t</div></th>
   2449 				</tr>
   2450 				<tr>
   2451 					<td>1</td>
   2452 					<td><div align="right">1</div></td>
   2453 					<td><div align="right">0</div></td>
   2454 					<td><div align="right">0</div></td>
   2455 					<td><div align="right">0</div></td>
   2456 					<td><div align="right">0</div></td>
   2457 				</tr>
   2458 				<tr>
   2459 					<td>1.0</td>
   2460 					<td><div align="right">1</div></td>
   2461 					<td><div align="right">1</div></td>
   2462 					<td><div align="right">0</div></td>
   2463 					<td><div align="right">0</div></td>
   2464 					<td><div align="right">0</div></td>
   2465 				</tr>
   2466 				<tr>
   2467 					<td>1.00</td>
   2468 					<td><div align="right">1</div></td>
   2469 					<td><div align="right">2</div></td>
   2470 					<td><div align="right">0</div></td>
   2471 					<td><div align="right">0</div></td>
   2472 					<td><div align="right">0</div></td>
   2473 				</tr>
   2474 				<tr>
   2475 					<td>1.3</td>
   2476 					<td><div align="right">1</div></td>
   2477 					<td><div align="right">1</div></td>
   2478 					<td><div align="right">1</div></td>
   2479 					<td><div align="right">3</div></td>
   2480 					<td><div align="right">3</div></td>
   2481 				</tr>
   2482 				<tr>
   2483 					<td>1.30</td>
   2484 					<td><div align="right">1</div></td>
   2485 					<td><div align="right">2</div></td>
   2486 					<td><div align="right">1</div></td>
   2487 					<td><div align="right">30</div></td>
   2488 					<td><div align="right">3</div></td>
   2489 				</tr>
   2490 				<tr>
   2491 					<td>1.03</td>
   2492 					<td><div align="right">1</div></td>
   2493 					<td><div align="right">2</div></td>
   2494 					<td><div align="right">2</div></td>
   2495 					<td><div align="right">3</div></td>
   2496 					<td><div align="right">3</div></td>
   2497 				</tr>
   2498 				<tr>
   2499 					<td>1.230</td>
   2500 					<td><div align="right">1</div></td>
   2501 					<td><div align="right">3</div></td>
   2502 					<td><div align="right">2</div></td>
   2503 					<td><div align="right">230</div></td>
   2504 					<td><div align="right">23</div></td>
   2505 				</tr>
   2506 			</table>
   2507 		</div>
   2508 		<br>
   2509 		<h4>
   2510 			<a name="Relations" href="#Relations">5.1.2 Relations</a>
   2511 		</h4>
   2512 		<p>
   2513 			The positive relations are of the format <strong>x = y</strong> and <strong>x
   2514 				= y mod z</strong>. The <strong>y</strong> value can be a comma-separated
   2515 			list, such as <strong>n = 3, 5, 7..15</strong>, and is treated as if
   2516 			each relation were expanded into an OR statement. The range value <strong>a..b</strong>
   2517 			is equivalent to listing all the <em><strong>integers</strong></em> between <strong>a</strong>
   2518 			and <strong>b</strong>, inclusive. When <strong>!=</strong> is used,
   2519 			it means the entire relation is negated.
   2520 		</p>
   2521 
   2522 		<table class='simple'>
   2523 			<caption>
   2524 				<a name="Relations_Examples" href="#Relations_Examples">Relations
   2525 					Examples</a>
   2526 			</caption>
   2527 			<tr>
   2528 				<th>Expression</th>
   2529 				<th>Meaning</th>
   2530 			</tr>
   2531 			<tr>
   2532 				<td>x = 2..4, 15</td>
   2533 				<td>x = 2 OR x = 3 OR x = 4 OR x = 15</td>
   2534 			</tr>
   2535 			<tr>
   2536 				<td>x != 2..4, 15</td>
   2537 				<td>NOT (x = 2 OR x = 3 OR x = 4 OR x = 15)</td>
   2538 			</tr>
   2539 		</table>
   2540 		<br>
   2541 		<table class='simple'>
   2542 			<!-- nocaption -->
   2543 			<tr>
   2544 				<th>Expression</th>
   2545 				<th>Value</th>
   2546 			</tr>
   2547 			<tr>
   2548 				<td>3.5 = 2..4, 15</td>
   2549 				<td>false</td>
   2550 			</tr>
   2551 			<tr>
   2552 				<td nowrap>3.5 != 2..4, 15</td>
   2553 				<td>true</td>
   2554 			</tr>
   2555             <tr>
   2556 				<td>3 = 2..4, 15</td>
   2557 				<td>true</td>
   2558 			</tr>
   2559 	
   2560 			<tr>
   2561 				<td>3 != 2..4, 15</td>
   2562 				<td>false</td>
   2563 			</tr>
   2564 		</table>
   2565 		<blockquote>
   2566 			<p>
   2567 				The old keywords 'mod', 'in', 'is', and 'within' are present only
   2568 				for backwards compatibility. The preferred form is to use '%' for
   2569 				modulo, and '=' or '!=' for the relations, with the operand 'i'
   2570 				instead of within. (The difference between <strong>in</strong> and <strong>within</strong>
   2571 				is that <strong>in</strong> only includes integers in the specified
   2572 				range, while <strong>within </strong>includes all values.)
   2573 			</p>
   2574 		</blockquote>
   2575 		<p dir="ltr">
   2576 			The modulus (% or<strong> mod</strong>) is a remainder operation as
   2577 			defined in Java; for example, where <strong>n</strong> = 4.3 the
   2578 			result of <strong>n mod 3</strong> is 1.3.
   2579 		</p>
   2580 		<p>
   2581 			The values of relations are defined according to the operand as
   2582 			follows. Importantly, the results may depend on the visible decimals in the source, including
   2583 			trailing zeros.
   2584 		</p>
   2585 		<ol>
   2586 			<li>Let the base value BV be computed from absolute value of the
   2587 				original source number according to the operand.</li>
   2588 			<li>Let R be false when the comparison contains
   2589 				&lsquo;not&rsquo;.</li>
   2590 			<li>Let R be !R if &nbsp;the comparison contains
   2591 				&lsquo;within&rsquo; and the source number is not an integer.</li>
   2592 			<li>If there is a module value MV, let BV be BV - floor(BV/MV).</li>
   2593 			<li>Let CR be the list of comparison ranges, normalized that
   2594 				overlapping ranges are merged. Single values in the rule are
   2595 				represented by a range with identical &lt;start<sub>i</sub>, end<sub>i</sub>&gt;
   2596 				values.
   2597 			</li>
   2598 			<li>Iterate through CR:
   2599 				<ul>
   2600 					<li>if start<sub>i</sub>  BV  end<sub>i</sub> then return R.
   2601 					</li>
   2602 				</ul>
   2603 			</li>
   2604 			<li>Otherwise return !R.</li>
   2605 		</ol>
   2606 		<p></p>
   2607 
   2608 		<table border="1">
   2609 			<caption>
   2610 				<a name="Plural_Rules_Examples" href="#Plural_Rules_Examples">Plural
   2611 					Rules Examples</a>
   2612 			</caption>
   2613 			<tr>
   2614 				<th>Rules</th>
   2615 				<th>Comments</th>
   2616 			</tr>
   2617 			<tr>
   2618 				<td nowrap>one: n = 1<br> few: n = 2..4
   2619 				</td>
   2620 				<td>This defines two rules, for 'one' and 'few'. The condition
   2621 					for 'one' is &quot;n = 1&quot; which means that the number must be
   2622 					equal to 1 for this condition to pass. The condition for 'few' is
   2623 					&quot;n = 2..4&quot; which means that the number must be between 2
   2624 					and 4 inclusive for this condition to pass. All other numbers are
   2625 					assigned the keyword 'other' by the default rule.</td>
   2626 			</tr>
   2627 			<tr>
   2628 				<td nowrap>zero: n = 0 or n != 1 and n mod 100 = 1..19<br>
   2629 					one: n = 1
   2630 				</td>
   2631 				<td>Each rule must not overlap with other rules. Also note that
   2632 					a modulus is applied to n in the last rule, thus its condition
   2633 					holds for 119, 219, 319</td>
   2634 			</tr>
   2635 			<tr>
   2636 				<td nowrap>one: n = 1<br> few: n mod 10 = 2..4 and n mod
   2637 					100 != 12..14
   2638 				</td>
   2639 				<td>This illustrates conjunction and negation. The condition
   2640 					for 'few' has two parts, both of which must be met: &quot;n mod 10
   2641 					= 2..4&quot; and &quot;n mod 100 != 12..14&quot;. The first part
   2642 					applies a modulus to n before the test as in the previous example.
   2643 					The second part applies a different modulus and also uses negation,
   2644 					thus it matches all numbers <em>not</em> in 12, 13, 14, 112, 113,
   2645 					114, 212, 213, 214
   2646 				</td>
   2647 			</tr>
   2648 		</table>
   2649 		<h4>
   2650 			<a name="Samples" href="#Samples">5.1.3 Samples</a>
   2651 		</h4>
   2652 		<p>Samples are provided if sample indicator (@integer or @decimal)
   2653 			is present on any rule. (CLDR always provides samples.)</p>
   2654 		<p>Where samples are provided, the absence of one of the sample
   2655 			indicators indicates that no numeric values can satisify that rule.
   2656 			For example, the rule &quot;i = 1 and v = 0&quot; can only have
   2657 			integer samples, so @decimal must not occur.</p>
   2658 		<p>
   2659 			The sampleRanges have a special notation: <strong>start</strong>~<strong>end</strong>.
   2660 			The <strong>start</strong> and <strong>end</strong> values must have
   2661 			the same number of decimal digits. The range encompasses all and only
   2662 			values those value <strong>v</strong> where <strong>start 
   2663 				v  end</strong>, and where <strong>v</strong> has the same number of decimal
   2664 			places as <strong>start</strong> and <strong>end</strong>.
   2665 		</p>
   2666 		<p>Samples must indicate whether they are infinite or not. The ''
   2667 			marker must be present if and only infinitely many values (integer or
   2668 			decimal) can satisfy the rule. If a set is not infinite, it must list
   2669 			all the possible values.</p>
   2670 		<table border="1">
   2671 			<caption>
   2672 				<a name="Plural_Samples_Examples" href="#Plural_Samples_Examples">Plural
   2673 					Samples Examples</a>
   2674 			</caption>
   2675 			<tr>
   2676 				<th>Rules</th>
   2677 				<th>Comments</th>
   2678 			</tr>
   2679 			<tr>
   2680 				<td nowrap>@integer 1, 3~5</td>
   2681 				<td>1, 3, 4, 5.</td>
   2682 			</tr>
   2683 			<tr>
   2684 				<td nowrap>@integer 3~5, 103~105, </td>
   2685 				<td>Infinite set: 3, 4, 5, 103, 104, 105, </td>
   2686 			</tr>
   2687 			<tr>
   2688 				<td nowrap>@decimal 1.3~1.5, 1.03~1.05, </td>
   2689 				<td>Infinite set: 1.3, 1.4, 1.5, 1.03, 1.04, 1.05, </td>
   2690 			</tr>
   2691 		</table>
   2692 		<br>
   2693 		<p>In determining whether a set of samples is infinite, leading
   2694 			zero integer digits and trailing zero decimals are not significant.
   2695 			Thus &quot;i = 1 and f = 0&quot; is satisfied by 01, 1, 1.0, 1.00,
   2696 			1.000, etc. but is still considered finite.</p>
   2697 		<h4>
   2698 			<a name="Using_cardinals" href="#Using_cardinals">5.1.4 Using
   2699 				Cardinals</a>
   2700 		</h4>
   2701 		<p>Elements such as &lt;currencyFormats&gt;, &lt;currency&gt; and
   2702 			&lt;unit&gt; provide selection among subelements designating various
   2703 			localized cardinal plural forms by tagging each of the relevant
   2704 			subelements with a different count value, or with no count value in
   2705 			some cases. Note that the plural forms for a specific currencyFormat,
   2706 			unit type, or currency type may not use all of the different
   2707 			plural-form tags defined for the language. To format a currency or
   2708 			unit type for a particular numeric value, determine the count value
   2709 			according to the plural rules for the language, then select the
   2710 			appropriate display form for the currency format, currency type or
   2711 			unit type using the rules in those sections:</p>
   2712 		<ul>
   2713 			<li>2.3 <a href="#Number_Symbols">Number Symbols</a> (for
   2714 				currencyFormats elements)
   2715 			</li>
   2716 			<li>Section 4 <a href="#Currencies">Currencies</a> (for currency
   2717 				elements)
   2718 			</li>
   2719 			<li>The main document section 5.11 <a
   2720 				href="tr35.html#Unit_Elements">Unit Elements</a></li>
   2721 		</ul>
   2722 		<h3>
   2723 			5.2 <a name="Plural_Ranges" href="#Plural_Ranges">Plural Ranges</a>
   2724 		</h3>
   2725 
   2726 		<p class="dtd">
   2727 			&lt;!ELEMENT pluralRanges (pluralRange*) &gt;<br> &lt;!ATTLIST
   2728 			pluralRanges locales NMTOKENS #REQUIRED &gt;<br> <br>
   2729 			&lt;!ELEMENT pluralRange ( #PCDATA ) &gt;<br> &lt;!ATTLIST
   2730 			pluralRange start (zero|one|two|few|many|other) #IMPLIED &gt;<br>
   2731 			&lt;!ATTLIST pluralRange end (zero|one|two|few|many|other) #IMPLIED
   2732 			&gt;<br> &lt;!ATTLIST pluralRange result
   2733 			(zero|one|two|few|many|other) #REQUIRED &gt;
   2734 		</p>
   2735 
   2736 		<p>Often ranges of numbers are presented to users, such as in
   2737 			Length: 3.24.5 centimeters. This means any length from 3.2 cm to
   2738 			4.5 cm, inclusive. However, different languages have different
   2739 			conventions for the pluralization given to a range: should it be 01
   2740 			centimeter or 01 centimeters? This becomes much more complicated
   2741 			for languages that have many different plural forms, such as Russian
   2742 			or Arabic.</p>
   2743 		<p>
   2744 			The <strong>pluralRanges</strong> element provides information
   2745 			allowing an implementation to derive the plural category of a range
   2746 			from the plural categories of the <em>start</em> and <em>end</em>
   2747 			values. If there is no value for a <em>&lt;start,end&gt;</em> pair,
   2748 			the default result is <em>end</em>. However, where that result has
   2749 			been verified for a given language, it is included in the CLDR data.
   2750 		</p>
   2751 		<p>The data has been gathered presuming that in any usage, the
   2752 			start value is strictly less than the end value, and that no values
   2753 			are negative. Results for any cases that do not meet these criteria
   2754 			are undefined.</p>
   2755 		<h2>
   2756 			6 <a name="Rule-Based_Number_Formatting"
   2757 				href="#Rule-Based_Number_Formatting">Rule-Based Number
   2758 				Formatting</a>
   2759 		</h2>
   2760 		<p class="dtd">
   2761 			&lt;!ELEMENT rbnf ( alias | rulesetGrouping*) &gt;<br> <br>
   2762 			&lt;!ELEMENT rulesetGrouping ( alias | ruleset*) &gt;<br>
   2763 			&lt;!ATTLIST rulesetGrouping type NMTOKEN #REQUIRED&gt;<br> <br>
   2764 			&lt;!ELEMENT ruleset ( alias | rbnfrule*) &gt;<br> &lt;!ATTLIST
   2765 			ruleset type NMTOKEN #REQUIRED&gt;<br> &lt;!ATTLIST ruleset
   2766 			access ( public | private ) #IMPLIED &gt;<br> <br>
   2767 			&lt;!ELEMENT rbnfrule ( #PCDATA ) &gt;<br> &lt;!ATTLIST rbnfrule
   2768 			value CDATA #REQUIRED &gt;<br> &lt;!ATTLIST rbnfrule radix CDATA
   2769 			#IMPLIED &gt;<br> &lt;!ATTLIST rbnfrule decexp CDATA #IMPLIED
   2770 			&gt;
   2771 		</p>
   2772 		<p>The rule-based number format (RBNF) encapsulates a set of rules
   2773 			for mapping binary numbers to and from a readable representation.
   2774 			They are typically used for spelling out numbers, but can also be
   2775 			used for other number systems like roman numerals, Chinese numerals,
   2776 			or for ordinal numbers (1st, 2nd, 3rd,).</p>
   2777 		<p>Where, however, the CLDR plurals or ordinals can be used, their
   2778 			usage is recommended in preference to the RBNF data. First, the RBNF
   2779 			data is not completely fleshed out over all languages that otherwise
   2780 			have modern coverage. Secondly, the alternate forms are neither
   2781 			complete, nor useful without additional information. For example, for
   2782 			German there is spellout-cardinal-masculine, and
   2783 			spellout-cardinal-feminine. But a complete solution would have all
   2784 			genders (masculine/feminine/neuter), all cases (nominative,
   2785 			accusative, dative, genitive), plus context (with strong or weak
   2786 			determiner or none). Moreover, even for the alternate forms that do
   2787 			exist, CLDR does not supply any data for when to use one vs another
   2788 			(eg, when to use spellout-cardinal-masculine vs
   2789 			spellout-cardinal-feminine). So these data are inappropriate for
   2790 			general purpose software.</p>
   2791 		<p>
   2792 			There are 4 common spellout rules. Some languages may provide more
   2793 			than these 4 types:<br>
   2794 		</p>
   2795 		<ul>
   2796 			<li><strong>numbering: </strong>This is the default used when
   2797 				there is no context for the number. For many languages, this may
   2798 				also be used for enumeration of objects, like used when pronouncing
   2799 				"table number one" and "table number two". It can also be used for
   2800 				pronouncing a math equation, like "2 - 3 = -1".</li>
   2801 			<li><strong>numbering-year: </strong>This is used for cases
   2802 				where years are pronounced or written a certain way. An example in
   2803 				English is the year 1999, which comes out as "nineteen ninety-nine"
   2804 				instead of the numbering value "one thousand nine hundred
   2805 				ninety-nine". The rules for this type have undefined behavior for
   2806 				non-integer numbers, and values less than 1.</li>
   2807 			<li><strong>cardinal: </strong>This is used when providing the
   2808 				quantity of the number of objects. For many languages, there may not
   2809 				be a default cardinal type. Many languages require the notion of the
   2810 				gender and other grammatical properties so that the number and the
   2811 				objects being referenced are in grammatical agreement. An example of
   2812 				its usage is "one e-mail", "two people" or "three kilometers". Some
   2813 				languages may not have dedicated words for 0 or negative numbers for
   2814 				cardinals. In those cases, the words from the numbering type can be
   2815 				reused.</li>
   2816 			<li><strong>ordinal: </strong>This is used when providing the
   2817 				order of the number of objects. For many languages, there may not be
   2818 				a default ordinal type. Many languages also require the notion of
   2819 				the gender for ordinal so that the ordinal number and the objects
   2820 				being referenced are in grammatical agreement. An example of its
   2821 				usage is "first place", "second e-mail" or "third house on the
   2822 				right". The rules for this type have undefined behavior for
   2823 				non-integer numbers, and values less than 1.</li>
   2824 		</ul>
   2825 		<p>
   2826 			In addition to the spellout rules, there are also a numbering system
   2827 			rules. Even though they may be derived from a specific culture, they
   2828 			are typically not translated and the rules are in <strong>root</strong>.
   2829 			An example of these rules are the Roman numerals where the value 8
   2830 			comes out as VIII.<br>
   2831 		</p>
   2832 		<p>
   2833 			With regards to the number range supported for all these number
   2834 			types, the largest possible number range tries to be supported, but
   2835 			some languages may not have words for large numbers. For example, the
   2836 			old Roman numbering system can't support the value 5000 and beyond.
   2837 			For those unsupported cases, the default number format from CLDR is
   2838 			used.<br>
   2839 		</p>
   2840 		<p>
   2841 			Any rules marked as <strong>private</strong> should never be
   2842 			referenced externally. Frequently they only support a subrange of
   2843 			numbers that are used in the public rules.<br>
   2844 		</p>
   2845 		<p>
   2846 			The syntax used in the CLDR representation of rules is intended to be
   2847 			simply a transcription of ICU based RBNF rules into an XML compatible
   2848 			syntax. The rules are fairly sophisticated; for details see <i>Rule-Based
   2849 				Number Formatter</i> [<a href="tr35.html#RBNF">RBNF</a>].
   2850 		</p>
   2851 		<p class="dtd">&lt;ruleSetGrouping&gt;</p>
   2852 		<p>Used to group rules into functional sets for use with ICU.
   2853 			Currently, the valid types of rule set groupings are
   2854 			&quot;SpelloutRules&quot;, &quot;OrdinalRules&quot;, and
   2855 			&quot;NumberingSystemRules&quot;.</p>
   2856 		<p class="dtd">&lt;ruleset&gt;</p>
   2857 		<p>This element denotes a specific rule set to the number
   2858 			formatter. The ruleset is assumed to be a public ruleset unless the
   2859 			attribute type=&quot;private&quot; is specified.</p>
   2860 		<p class="dtd">&lt;rule&gt;</p>
   2861 		<p>Contains the actual formatting rule for a particular number or
   2862 			sequence of numbers. The &quot;value&quot; attribute is used to
   2863 			indicate the starting number to which the rule applies. The actual
   2864 			text of the rule is identical to the ICU syntax, with the exception
   2865 			that Unicode left and right arrow characters are used to replace &lt;
   2866 			and &gt; in the rule text, since &lt; and &gt; are reserved
   2867 			characters in XML. The &quot;radix&quot; attribute is used to
   2868 			indicate an alternate radix to be used in calculating the prefix and
   2869 			postfix values for number formatting. Alternate radix values are
   2870 			typically used for formatting year numbers in formal documents, such
   2871 			as &quot;nineteen hundred seventy-six&quot; instead of &quot;one
   2872 			thousand nine hundred seventy-six&quot;.</p>
   2873 
   2874 		<h2>
   2875 			<a name="Parsing_Numbers" href="#Parsing_Numbers">7 Parsing
   2876 				Numbers</a>
   2877 		</h2>
   2878 		<p>The following elements are relevant to determining the value of
   2879 			a parsed number:</p>
   2880 		<ul>
   2881 			<li>A possible prefix or suffix, indicating sign</li>
   2882 			<li>A possible currency symbol or code</li>
   2883 			<li>Decimal digits</li>
   2884 			<li>A possible decimal separator</li>
   2885 			<li>A possible exponent</li>
   2886 			<li>A possible percent or per mille character</li>
   2887 		</ul>
   2888 		<p>Other characters should either be ignored, or indicate the end
   2889 			of input, depending on the application. The key point is to
   2890 			disambiguate the sets of characters that might serve in more than one
   2891 			position, based on context. For example, a period might be either the
   2892 			decimal separator, or part of a currency symbol (for example,
   2893 			&quot;NA f.&quot;). Similarly, an &quot;E&quot; could be an exponent
   2894 			indicator, or a currency symbol (the Swaziland Lilangeni uses
   2895 			&quot;E&quot; in the &quot;en&quot; locale). An apostrophe might be
   2896 			the decimal separator, or might be the grouping separator.</p>
   2897 		<p>Here is a set of heuristic rules that may be helpful:</p>
   2898 		<ul>
   2899 			<li>Any character with the decimal digit property is unambiguous
   2900 				and should be accepted.
   2901 				<p>
   2902 					<b>Note:</b> In some environments, applications may independently
   2903 					wish to restrict the decimal digit set to prevent security
   2904 					problems. See [<a href="http://www.unicode.org/reports/tr41/#UTR36">UTR36</a>].
   2905 				</p>
   2906 			</li>
   2907 			<li>The exponent character can only be interpreted as such if it
   2908 				occurs after at least one digit, and if it is followed by at least
   2909 				one digit, with only an optional sign in between. A regular
   2910 				expression may be helpful here.</li>
   2911 			<li>For the sign, decimal separator, percent, and per mille, use
   2912 				a set of all possible characters that can serve those functions. For
   2913 				example, the decimal separator set could include all of [.,&#39;].
   2914 				(The actual set of characters can be derived from the number symbols
   2915 				in the By-Type charts <a href="tr35.html#ByType">[ByType]</a>, which
   2916 				list all of the values in CLDR.) To disambiguate, the decimal
   2917 				separator for the locale must be removed from the &quot;ignore&quot;
   2918 				set, and the grouping separator for the locale must be removed from
   2919 				the decimal separator set. The same principle applies to all sets
   2920 				and symbols: any symbol must appear in at most one set.
   2921 			</li>
   2922 			<li>Since there are a wide variety of currency symbols and
   2923 				codes, this should be tried before the less ambiguous elements. It
   2924 				may be helpful to develop a set of characters that can appear in a
   2925 				symbol or code, based on the currency symbols in the locale.</li>
   2926 			<li>Otherwise, a character should be ignored unless it is in the
   2927 				&quot;stop&quot; set. This includes even characters that are
   2928 				meaningful for formatting, for example, the grouping separator.</li>
   2929 			<li>If more than one sign, currency symbol, exponent, or
   2930 				percent/per mille occurs in the input, the first found should be
   2931 				used.</li>
   2932 			<li>A currency symbol in the input should be interpreted as the
   2933 				longest match found in the set of possible currency symbols.</li>
   2934 			<li>Especially in cases of ambiguity, the user&#39;s input
   2935 				should be echoed back, properly formatted according to the locale,
   2936 				before it is actually used for anything.</li>
   2937 		</ul>
   2938 
   2939 		<hr>
   2940 		<p class="copyright">
   2941 			Copyright  20012018 Unicode, Inc. All
   2942 			Rights Reserved. The Unicode Consortium makes no expressed or implied
   2943 			warranty of any kind, and assumes no liability for errors or
   2944 			omissions. No liability is assumed for incidental and consequential
   2945 			damages in connection with or arising out of the use of the
   2946 			information or programs contained or accompanying this technical
   2947 			report. The Unicode <a href="http://unicode.org/copyright.html">Terms
   2948 				of Use</a> apply.
   2949 		</p>
   2950 		<p class="copyright">Unicode and the Unicode logo are trademarks
   2951 			of Unicode, Inc., and are registered in some jurisdictions.</p>
   2952 
   2953 	</div>
   2954 </body>
   2955 
   2956 </html>
   2957