Incorrect number-to-string conversion

RESOLVED FIXED

Status

()

Core
JavaScript Engine
P3
normal
RESOLVED FIXED
19 years ago
2 years ago

People

(Reporter: Waldemar Horwat, Assigned: Waldemar Horwat)

Tracking

Trunk
All
Mac System 8.6
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Assignee)

Description

19 years ago
The number 1e23 displays as 9.999999999999999e+22.  According to ECMA, it must
display as 1e23.

More detail:  Converting "1e23" to an IEEE double using IEEE's standard round-to-
nearest mode yields the IEEE double value
1.0101001011010000001011000111111000010100101011110110e76 (0x44B52D02C7E14AF6
encoded as a double).  This is exactly equal to 99999999999999991611392.
On output, ECMA 9.8 step 5 specifies that the significand must be as small as
possible while still having the printed number turn into the same double value if
converted back.  If we choose the significand to be 1 and the exponent to be 23,
then the resulting number is "1e+23" and it does convert back to
99999999999999991611392, as required.  Hence "1e+23" is the correct answer.

[As a general rule, *every* conversion of string->double->string where the
initial string has both:
  fewer than about 15 significant digits;
  an exponent within the double non-denormalized range
must return a number that looks like the original string (possibly sans leading
and trailing zeros and in fixed instead of exponential or exponential instead of
fixed notation.  This rule can be mathematically inferred from the properties
specified in the ECMA spec.]

Other test cases that currently fail are 5e22, 1.6e24, etc.

    Waldemar

Updated

19 years ago
Assignee: mccabe → rogerl

Comment 1

19 years ago
Roger, can you take a look at this?

CC'ing Clayton.
(Assignee)

Updated

19 years ago
Status: NEW → ASSIGNED
(Assignee)

Updated

19 years ago
Assignee: rogerl → waldemar
Status: ASSIGNED → NEW
(Assignee)

Updated

19 years ago
Status: NEW → ASSIGNED
(Assignee)

Updated

19 years ago
Status: ASSIGNED → RESOLVED
Last Resolved: 19 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.