]> gitweb.factorcode.org Git - factor.git/commitdiff
formatting: fix exception when formatting the integer 0 using "%e"
authorJon Harper <jon.harper87@gmail.com>
Thu, 6 Jul 2017 21:36:29 +0000 (23:36 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Sat, 8 Jul 2017 16:39:56 +0000 (18:39 +0200)
basis/formatting/formatting-tests.factor
basis/formatting/formatting.factor

index 3473fa11cb7d13b71ec3229c8530bb5276ad8834..543eff4fdd182e61a94bd89a6df295a5ba8edabc 100755 (executable)
@@ -36,6 +36,7 @@ IN: formatting.tests
 { "1.4" } [ 135/100 "%.1f" sprintf ] unit-test
 { "4" } [ 7/2 "%.0f" sprintf ] unit-test
 { "1" } [ 1.0 "%.0f" sprintf ] unit-test
+{ "0.0e+00" } [ 0 "%.1e" sprintf ] unit-test
 { "  1.23" } [ 1.23456789 "%6.2f" sprintf ] unit-test
 { "001100" } [ 12 "%06b" sprintf ] unit-test
 { "==14" } [ 12 "%'=4o" sprintf ] unit-test
index 54c131c19191d2c9130e0f905e7529cf0402674d..388d5852c6fd30b0e9fbc3c9e1f5678080b1eb04 100644 (file)
@@ -61,7 +61,7 @@ IN: formatting
 : format-fast-scientific? ( x digits -- x' digits ? )
     over float? [ t ]
     [ 2dup
-        [ abs integer-log10 abs 308 < ]
+        [ [ t ] [ abs integer-log10 abs 308 < ] if-zero ]
         [ 15 < ] bi* and
         [ [ [ >float ] dip ] when ] keep
     ] if ;