annotate doc/numbers.txt @ 470:5c4daf6cbe53 stable-0.9.x

Merged revisions 459 via svnmerge from http://svn.edgewall.org/repos/babel/trunk ........ r459 | palgarvio | 2008-12-16 00:14:50 +0100 (di, 16 dec 2008) | 2 lines Typo's and sorted output of `list-locales`. ........
author jruigrok
date Sun, 11 Apr 2010 08:15:12 +0000
parents 00b83943f79e
children
rev   line source
124
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
1 .. -*- mode: rst; encoding: utf-8 -*-
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
2
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
3 ==========================
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
4 Number Formatting
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
5 ==========================
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
6
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
7
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
8 .. contents:: Contents
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
9 :depth: 2
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
10 .. sectnum::
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
11
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
12
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
13 Support for locale-specific formatting and parsing of numbers is provided by
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
14 the ``babel.numbers`` module:
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
15
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
16 .. code-block:: pycon
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
17
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
18 >>> from babel.numbers import format_number, format_decimal, format_percent
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
19
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
20 Examples:
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
21
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
22 .. code-block:: pycon
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
23
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
24 >>> format_decimal(1.2345, locale='en_US')
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
25 u'1.234'
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
26 >>> format_decimal(1.2345, locale='sv_SE')
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
27 u'1,234'
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
28 >>> format_decimal(12345, locale='de_DE')
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
29 u'12.345'
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
30
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
31
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
32 Pattern Syntax
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
33 ==============
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
34
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
35 While Babel makes it simple to use the appropriate number format for a given
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
36 locale, you can also force it to use custom patterns. As with date/time
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
37 formatting patterns, the patterns Babel supports for number formatting are
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
38 based on the `Locale Data Markup Language specification`_ (LDML).
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
39
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
40 Examples:
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
41
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
42 .. code-block:: pycon
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
43
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
44 >>> format_decimal(-1.2345, format='#,##0.##;-#', locale='en')
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
45 u'-1.23'
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
46 >>> format_decimal(-1.2345, format='#,##0.##;(#)', locale='en')
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
47 u'(1.23)'
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
48
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
49 The syntax for custom number format patterns is described in detail in the
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
50 the specification. The following table is just a relatively brief overview.
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
51
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
52 .. _`Locale Data Markup Language specification`: http://unicode.org/reports/tr35/#Number_Format_Patterns
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
53
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
54 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
55 | Symbol | Description |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
56 +==========+=================================================================+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
57 | ``0`` | Digit |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
58 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
59 | ``1-9`` | '1' through '9' indicate rounding. |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
60 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
61 | ``@`` | Significant digit |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
62 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
63 | ``#`` | Digit, zero shows as absent |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
64 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
65 | ``.`` | Decimal separator or monetary decimal separator |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
66 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
67 | ``-`` | Minus sign |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
68 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
69 | ``,`` | Grouping separator |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
70 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
71 | ``E`` | Separates mantissa and exponent in scientific notation |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
72 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
73 | ``+`` | Prefix positive exponents with localized plus sign |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
74 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
75 | ``;`` | Separates positive and negative subpatterns |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
76 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
77 | ``%`` | Multiply by 100 and show as percentage |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
78 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
79 | ``‰`` | Multiply by 1000 and show as per mille |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
80 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
81 | ``¤`` | Currency sign, replaced by currency symbol. If doubled, |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
82 | | replaced by international currency symbol. If tripled, uses the |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
83 | | long form of the decimal symbol. |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
84 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
85 | ``'`` | Used to quote special characters in a prefix or suffix |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
86 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
87 | ``*`` | Pad escape, precedes pad character |
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
88 +----------+-----------------------------------------------------------------+
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
89
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
90
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
91 Parsing Numbers
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
92 ===============
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
93
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
94 Babel can also parse numeric data in a locale-sensitive manner:
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
95
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
96 .. code-block:: pycon
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
97
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
98 >>> from babel.numbers import parse_decimal, parse_number
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
99
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
100 Examples:
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
101
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
102 .. code-block:: pycon
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
103
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
104 >>> parse_decimal('1,099.98', locale='en_US')
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
105 1099.98
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
106 >>> parse_decimal('1.099,98', locale='de')
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
107 1099.98
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
108 >>> parse_decimal('2,109,998', locale='de')
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
109 Traceback (most recent call last):
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
110 ...
bf1bcdf19111 Split docs on date and number formatting.
cmlenz
parents:
diff changeset
111 NumberFormatError: '2,109,998' is not a valid decimal number
255
00b83943f79e Added examples for using `get_timezone_name` to documentation.
cmlenz
parents: 124
diff changeset
112
00b83943f79e Added examples for using `get_timezone_name` to documentation.
cmlenz
parents: 124
diff changeset
113 .. note:: Number parsing is not properly implemented yet
Copyright (C) 2012-2017 Edgewall Software