Why decimal?

Brendan Eich brendan at mozilla.com
Tue Jun 23 07:46:09 PDT 2009


On Jun 23, 2009, at 12:18 AM, Christian Plesner Hansen wrote:

> I've been looking around on the web for reasons why decimal arithmetic
> should be added to ES.  The most extensive page I could find was
> http://speleotrove.com/decimal/decifaq.html.  If anyone know other
> good sources of information about decimal and its inclusion in ES
> please follow up.

Mike Cowlishaw's pages on decimal have lots of arguments for it:

http://www2.hursley.ibm.com/decimal/decifaq.html
http://www2.hursley.ibm.com/decimal/

The most-duplicated JS bug in bugzilla.mozilla.org is

https://bugzilla.mozilla.org/show_bug.cgi?id=5856

Here's a typical naive JS user complaining that his computer his  
broken because it can't calculate correct differences:

"... I typed in:
9533.24-215.10

… and here is the garbage Apple babbled back at me: 9318.139999999999"


He blamed Apple. Naive users often blame hardware for software bugs.


> The strongest argument seems to be financial: binary arithmetic is
> approximate in a way that makes it unsuitable for financial
> calculations.  I buy this argument in general -- I would definitely
> want my bank to use some form of decimal arithmetic rather than binary
> -- but less so in the context of ES.

Do you consider that naive user's calculator example to be  
"financial"? I do not.

The problem is worse for non-experts. The experts can cope.

Anyway, decimal is not being pushed into JS at this point. At the last  
face-to-face TC39 meeting, we changed direction to explore  
generalizing value type support (including operators and literals if  
we can) so that libraries could add first class number-like types.

Whether any new value type would be native or self-hosted, and whether  
it would be included in the core standard, are issues we want to defer  
until later, ideally until there are de-facto standards to codify.

The counter-argument articulated at the meeting by Sam was that it's  
rare for users to download binary extensions to JS for browsers (Flash  
is the only exception, and it's not primarily a JS extension). So  
users won't get decimal unless it is part of the normative core spec,  
so the usability bug reported as Mozilla bug 5856 won't get fixed.

I think Sam has a point; lack of a standard could be a problem. But  
whatever we do about it, the committee agreed to work on value types  
first. They're on the Harmony agenda.

/be
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20090623/2a75cca0/attachment.html>


More information about the es-discuss mailing list