--- format_number.module.old    2009-01-03 20:35:22.000000000 +0100
+++ format_number.module        2009-01-03 20:42:07.000000000 +0100
@@ -156,10 +156,10 @@ function format_number($number, $decimal
     $number = sprintf('%f', (float)$number);
   }
   if ($decimals < 0 && strpos($number, '.') !== FALSE) {
-    // Count relevant decimal places.
+    // Count relevant decimal places (ignoring trailing zeros).
     $decimals = strlen(preg_replace('#^.*\.([0-9]*?)0*$#', '\1', $number));
   }
-  return number_format($number, $decimals, $format_options['decimal_point'], $format_options['thousands_sep']);
+  return str_replace(array('X', 'Z'), array($format_options['decimal_point'], $format_options['thousands_sep']), number_format($number, $decimals, 'X', 'Z'));
 }

 /**
