2017-11-27 01:51:52 +00:00
|
|
|
# test parsing of floats, requiring double-precision
|
|
|
|
|
|
|
|
# very large integer part with a very negative exponent should cancel out
|
2020-03-23 02:26:08 +00:00
|
|
|
print(float("9" * 400 + "e-100"))
|
|
|
|
print(float("9" * 400 + "e-200"))
|
|
|
|
print(float("9" * 400 + "e-400"))
|
2017-11-27 01:51:52 +00:00
|
|
|
|
|
|
|
# many fractional digits
|
2020-03-23 02:26:08 +00:00
|
|
|
print(float("." + "9" * 400))
|
|
|
|
print(float("." + "9" * 400 + "e100"))
|
|
|
|
print(float("." + "9" * 400 + "e-100"))
|
2017-11-27 01:51:52 +00:00
|
|
|
|
|
|
|
# tiny fraction with large exponent
|
2020-03-23 02:26:08 +00:00
|
|
|
print("%.14e" % float("." + "0" * 400 + "9e100"))
|
|
|
|
print("%.14e" % float("." + "0" * 400 + "9e200"))
|
|
|
|
print("%.14e" % float("." + "0" * 400 + "9e400"))
|
2018-02-08 03:02:50 +00:00
|
|
|
|
|
|
|
# ensure that accuracy is retained when value is close to a subnormal
|
2020-03-23 02:26:08 +00:00
|
|
|
print(float("1.00000000000000000000e-307"))
|
|
|
|
print(float("10.0000000000000000000e-308"))
|
|
|
|
print(float("100.000000000000000000e-309"))
|