Underscores in Python numbers

Steve Holden steve at holdenweb.com
Sun Nov 20 16:37:40 CET 2005

```David M. Cooke wrote:
> Peter Hansen <peter at engcorp.com> writes:
>
>
>>Steven D'Aprano wrote:
>>
>>>Dealing with numeric literals with lots of digits is
>>>a real (if not earth-shattering) human interface problem: it is hard for
>>>people to parse long numeric strings.
>>
>>I'm totally unconvinced that this _is_ a real problem, if we define
>>"real" as being even enough to jiggle my mouse, let alone shattering the
>>planet.
>>
>>What examples does anyone have of where it is necessary to define a
>>large number of large numeric literals?  Isn't it the case that other
>>than the odd constants in various programs, defining a large number of
>>such values would be better done by creating a data file and parsing
>>it?
>
>
> One example I can think of is a large number of float constants used
> for some math routine. In that case they usually be a full 16 or 17
> digits. It'd be handy in that case to split into smaller groups to
> make it easier to match with tables where these constants may come
> from. Ex:
>
> def sinxx(x):
>     "computes sin x/x for 0 <= x <= pi/2 to 2e-9"
>     a2 = -0.16666 66664
>     a4 =  0.00833 33315
>     a6 = -0.00019 84090
>     a8 =  0.00000 27526
>     a10= -0.00000 00239
>     x2 = x**2
>     return 1. + x2*(a2 + x2*(a4 + x2*(a6 + x2*(a8 + x2*a10))))
>
> (or least that's what I like to write). Now, if I were going to higher
> precision, I'd have more digits of course.
>
Right, this is clearly such a frequent use case it's worth changing the
compiler for.

regards
Steve
--
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC                     www.holdenweb.com
PyCon TX 2006                  www.python.org/pycon/

```