Opened 8 years ago
Closed 5 years ago
#28280 closed Bug (fixed)
numberformat.format() incorrectly formats large/tiny floats in scientific notation
Reported by: | Wil Tan | Owned by: | Hasan Ramezani |
---|---|---|---|
Component: | Utilities | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Pull Requests: | |||
Description (last modified by ) ¶
For floats with values larger than 1e16 or smaller than 1e-5, their string representation uses scientific notation in Python, which causes numberformat.format
to return an erroneous output.
>>> from django.utils.numberformat import format >>> format(0.0000000000000000009, '.', 2) '9e-19.00' >>> format(1e16, '.', 2, thousand_sep=',', grouping=3, force_grouping=True) '1e,+16.00'
This is similar to #23935 but that was only fixed for Decimal types.
Change History (8)
comment:1 by , 8 years ago
Component: | Uncategorized → Utilities |
---|---|
Description: | modified (diff) |
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → Bug |
comment:2 by , 8 years ago
Has patch: | set |
---|---|
Patch needs improvement: | set |
Summary: | numberformat.format does not handle scientific notation correctly → numberformat.format() incorrectly formats large/tiny floats in scientific notation |
comment:4 by , 5 years ago
Owner: | changed from | to
---|---|
Patch needs improvement: | unset |
Status: | new → assigned |
comment:5 by , 5 years ago
Patch needs improvement: | set |
---|---|
Version: | 1.11 → master |
comment:6 by , 5 years ago
Patch needs improvement: | unset |
---|
comment:7 by , 5 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
Note:
See TracTickets
for help on using tickets.
PR (with a few comments for improvement)