changeset 359:44637ad19c35

Fix scientific notation for 0. closes #99
author aronacher
date Tue, 17 Jun 2008 21:17:44 +0000
parents c82ad0f5ff65
children 36408f068138
files babel/numbers.py babel/tests/numbers.py
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/babel/numbers.py
+++ b/babel/numbers.py
@@ -463,7 +463,10 @@
         is_negative = int(value < 0)
         if self.exp_prec: # Scientific notation
             value = abs(value)
-            exp = int(math.floor(math.log(value, 10)))
+            if value:
+                exp = int(math.floor(math.log(value, 10)))
+            else:
+                exp = 0
             # Minimum number of integer digits
             if self.int_prec[0] == self.int_prec[1]:
                 exp -= self.int_prec[0] - 1
--- a/babel/tests/numbers.py
+++ b/babel/tests/numbers.py
@@ -138,6 +138,9 @@
             fmt = numbers.format_scientific(Decimal('12345'), '#.##E+00 m/s', 
             locale='en_US')
             self.assertEqual(fmt, '1.23E+04 m/s')
+        # 0 (see ticket #99)
+        fmt = numbers.format_scientific(0, '#E0', locale='en_US')
+        self.assertEqual(fmt, '0E0')
 
 
 def suite():
Copyright (C) 2012-2017 Edgewall Software