Author: Maciej Fijalkowski <[email protected]>
Branch:
Changeset: r67309:57e14783523b
Date: 2013-10-11 12:01 +0200
http://bitbucket.org/pypy/pypy/changeset/57e14783523b/
Log: implement an obscure flag for dtoa
diff --git a/rpython/rlib/rdtoa.py b/rpython/rlib/rdtoa.py
--- a/rpython/rlib/rdtoa.py
+++ b/rpython/rlib/rdtoa.py
@@ -217,13 +217,13 @@
if exp >= 0:
exp_str = str(exp)
- if len(exp_str) < 2:
+ if len(exp_str) < 2 and not (flags & rfloat.DTSF_CUT_EXP_0):
s += e + '+0' + exp_str
else:
s += e + '+' + exp_str
else:
exp_str = str(-exp)
- if len(exp_str) < 2:
+ if len(exp_str) < 2 and not (flags & rfloat.DTSF_CUT_EXP_0):
s += e + '-0' + exp_str
else:
s += e + '-' + exp_str
diff --git a/rpython/rlib/rfloat.py b/rpython/rlib/rfloat.py
--- a/rpython/rlib/rfloat.py
+++ b/rpython/rlib/rfloat.py
@@ -69,6 +69,7 @@
DTSF_SIGN = 0x1
DTSF_ADD_DOT_0 = 0x2
DTSF_ALT = 0x4
+DTSF_CUT_EXP_0 = 0x8
DIST_FINITE = 1
DIST_NAN = 2
diff --git a/rpython/rlib/test/test_rdtoa.py b/rpython/rlib/test/test_rdtoa.py
--- a/rpython/rlib/test/test_rdtoa.py
+++ b/rpython/rlib/test/test_rdtoa.py
@@ -29,3 +29,7 @@
def test_dtoa_precision():
assert dtoa(1.1, code='f', precision=2) == "1.10"
assert dtoa(1e12, code='g', precision=12) == "1e+12"
+
+def test_flag_cut_exp_0():
+ assert dtoa(1.1e9, code="g", precision=2, flags=rfloat.DTSF_CUT_EXP_0) ==
"1.1e+9"
+ assert dtoa(1.1e-9, code="g", precision=2, flags=rfloat.DTSF_CUT_EXP_0) ==
"1.1e-9"
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit