Current Path :
/
usr
/
share
/
doc
/
python-babel-0.9.4
/
doc
/
Or
Select Your Path :
Upload File :
New :
File
Dir
//usr/share/doc/python-babel-0.9.4/doc/numbers.html
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/"> <title>Number Formatting</title> <link rel="stylesheet" href="common/style/edgewall.css" type="text/css"> </head> <body> <div class="document" id="number-formatting"> <div id="navigation"> <span class="projinfo">Babel 0.9.4</span> <a href="index.html">Documentation Index</a> </div> <h1 class="title">Number Formatting</h1> <div class="contents topic"> <p class="topic-title first"><a id="contents" name="contents">Contents</a></p> <ul class="auto-toc simple"> <li><a class="reference" href="#pattern-syntax" id="id1" name="id1">1 Pattern Syntax</a></li> <li><a class="reference" href="#parsing-numbers" id="id2" name="id2">2 Parsing Numbers</a></li> </ul> </div> <p>Support for locale-specific formatting and parsing of numbers is provided by the <tt class="docutils literal"><span class="pre">babel.numbers</span></tt> module:</p> <div class="highlight"><pre><span class="gp">>>> </span><span class="k">from</span> <span class="nn">babel.numbers</span> <span class="k">import</span> <span class="n">format_number</span><span class="p">,</span> <span class="n">format_decimal</span><span class="p">,</span> <span class="n">format_percent</span> </pre></div> <p>Examples:</p> <div class="highlight"><pre><span class="gp">>>> </span><span class="n">format_decimal</span><span class="p">(</span><span class="mf">1.2345</span><span class="p">,</span> <span class="n">locale</span><span class="o">=</span><span class="s">'en_US'</span><span class="p">)</span> <span class="go">u'1.234'</span> <span class="gp">>>> </span><span class="n">format_decimal</span><span class="p">(</span><span class="mf">1.2345</span><span class="p">,</span> <span class="n">locale</span><span class="o">=</span><span class="s">'sv_SE'</span><span class="p">)</span> <span class="go">u'1,234'</span> <span class="gp">>>> </span><span class="n">format_decimal</span><span class="p">(</span><span class="mf">12345</span><span class="p">,</span> <span class="n">locale</span><span class="o">=</span><span class="s">'de_DE'</span><span class="p">)</span> <span class="go">u'12.345'</span> </pre></div> <div class="section"> <h1><a id="pattern-syntax" name="pattern-syntax">1 Pattern Syntax</a></h1> <p>While Babel makes it simple to use the appropriate number format for a given locale, you can also force it to use custom patterns. As with date/time formatting patterns, the patterns Babel supports for number formatting are based on the <a class="reference" href="http://unicode.org/reports/tr35/#Number_Format_Patterns">Locale Data Markup Language specification</a> (LDML).</p> <p>Examples:</p> <div class="highlight"><pre><span class="gp">>>> </span><span class="n">format_decimal</span><span class="p">(</span><span class="o">-</span><span class="mf">1.2345</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'#,##0.##;-#'</span><span class="p">,</span> <span class="n">locale</span><span class="o">=</span><span class="s">'en'</span><span class="p">)</span> <span class="go">u'-1.23'</span> <span class="gp">>>> </span><span class="n">format_decimal</span><span class="p">(</span><span class="o">-</span><span class="mf">1.2345</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'#,##0.##;(#)'</span><span class="p">,</span> <span class="n">locale</span><span class="o">=</span><span class="s">'en'</span><span class="p">)</span> <span class="go">u'(1.23)'</span> </pre></div> <p>The syntax for custom number format patterns is described in detail in the the specification. The following table is just a relatively brief overview.</p> <blockquote> <blockquote> <table border="1" class="docutils"> <colgroup> <col width="13%"> <col width="87%"> </colgroup> <thead valign="bottom"> <tr><th class="head">Symbol</th> <th class="head">Description</th> </tr> </thead> <tbody valign="top"> <tr><td><tt class="docutils literal"><span class="pre">0</span></tt></td> <td>Digit</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">1-9</span></tt></td> <td>'1' through '9' indicate rounding.</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">@</span></tt></td> <td>Significant digit</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">#</span></tt></td> <td>Digit, zero shows as absent</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">.</span></tt></td> <td>Decimal separator or monetary decimal separator</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">-</span></tt></td> <td>Minus sign</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">,</span></tt></td> <td>Grouping separator</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">E</span></tt></td> <td>Separates mantissa and exponent in scientific notation</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">+</span></tt></td> <td>Prefix positive exponents with localized plus sign</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">;</span></tt></td> <td>Separates positive and negative subpatterns</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">%</span></tt></td> <td>Multiply by 100 and show as percentage</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">‰</span></tt></td> <td>Multiply by 1000 and show as per mille</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">¤</span></tt></td> <td>Currency sign, replaced by currency symbol. If doubled, replaced by international currency symbol. If tripled, uses the long form of the decimal symbol.</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">'</span></tt></td> <td>Used to quote special characters in a prefix or suffix</td> </tr> <tr><td><tt class="docutils literal"><span class="pre">*</span></tt></td> <td>Pad escape, precedes pad character</td> </tr> </tbody> </table> </blockquote> </blockquote> </div> <div class="section"> <h1><a id="parsing-numbers" name="parsing-numbers">2 Parsing Numbers</a></h1> <p>Babel can also parse numeric data in a locale-sensitive manner:</p> <div class="highlight"><pre><span class="gp">>>> </span><span class="k">from</span> <span class="nn">babel.numbers</span> <span class="k">import</span> <span class="n">parse_decimal</span><span class="p">,</span> <span class="n">parse_number</span> </pre></div> <p>Examples:</p> <div class="highlight"><pre><span class="gp">>>> </span><span class="n">parse_decimal</span><span class="p">(</span><span class="s">'1,099.98'</span><span class="p">,</span> <span class="n">locale</span><span class="o">=</span><span class="s">'en_US'</span><span class="p">)</span> <span class="go">1099.98</span> <span class="gp">>>> </span><span class="n">parse_decimal</span><span class="p">(</span><span class="s">'1.099,98'</span><span class="p">,</span> <span class="n">locale</span><span class="o">=</span><span class="s">'de'</span><span class="p">)</span> <span class="go">1099.98</span> <span class="gp">>>> </span><span class="n">parse_decimal</span><span class="p">(</span><span class="s">'2,109,998'</span><span class="p">,</span> <span class="n">locale</span><span class="o">=</span><span class="s">'de'</span><span class="p">)</span> <span class="gt">Traceback (most recent call last):</span> <span class="c">...</span> <span class="nc">NumberFormatError</span>: <span class="n-Identifier">'2,109,998' is not a valid decimal number</span> </pre></div> <div class="note"> <p class="first admonition-title">Note</p> <p class="last">Number parsing is not properly implemented yet</p> </div> </div> <div id="footer"> Visit the Babel open source project at <a href="http://babel.edgewall.org/">http://babel.edgewall.org/</a> </div> </div> </body> </html>