aboutsummaryrefslogtreecommitdiff
path: root/tests/float/float_parse_doubleprec.py
diff options
context:
space:
mode:
authorDamien George2018-02-08 14:02:50 +1100
committerDamien George2018-02-08 14:02:50 +1100
commitb75cb8392bdf5f8c12072eac3adbdaad53d1e8d2 (patch)
tree4e02e3f9b22d6496677c97366d981778619556b9 /tests/float/float_parse_doubleprec.py
parent0c650d427601d5c84bd623d58abc9be5451c576c (diff)
py/parsenum: Fix parsing of floats that are close to subnormal.
Prior to this patch, a float literal that was close to subnormal would have a loss of precision when parsed. The worst case was something like float('10000000000000000000e-326') which returned 0.0.
Diffstat (limited to 'tests/float/float_parse_doubleprec.py')
-rw-r--r--tests/float/float_parse_doubleprec.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/float/float_parse_doubleprec.py b/tests/float/float_parse_doubleprec.py
index 356601130..2ea7842f3 100644
--- a/tests/float/float_parse_doubleprec.py
+++ b/tests/float/float_parse_doubleprec.py
@@ -14,3 +14,8 @@ print(float('.' + '9' * 400 + 'e-100'))
print(float('.' + '0' * 400 + '9e100'))
print(float('.' + '0' * 400 + '9e200'))
print(float('.' + '0' * 400 + '9e400'))
+
+# ensure that accuracy is retained when value is close to a subnormal
+print(float('1.00000000000000000000e-307'))
+print(float('10.0000000000000000000e-308'))
+print(float('100.000000000000000000e-309'))