]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Fix scientific notation for 0. closes #99
authorArmin Ronacher <armin.ronacher@active-4.com>
Tue, 17 Jun 2008 21:17:44 +0000 (21:17 +0000)
committerArmin Ronacher <armin.ronacher@active-4.com>
Tue, 17 Jun 2008 21:17:44 +0000 (21:17 +0000)
babel/numbers.py
babel/tests/numbers.py

index 92b1fd3cee8e3bace26dcd68331d5cf5b675efdb..16efc60d8b7adbd2a869bb95dc9d754b55ffba56 100644 (file)
@@ -463,7 +463,10 @@ class NumberPattern(object):
         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
index ec294efb083a6d851c8d327e22baad5024dae9ae..5e43e9607af3fe4c814daf1ac0b4908df9e9c89e 100644 (file)
@@ -138,6 +138,9 @@ class FormatDecimalTestCase(unittest.TestCase):
             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():