? format_number.test
Index: format_number.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/format_number/Attic/format_number.module,v
retrieving revision 1.1.2.8
diff -u -p -r1.1.2.8 format_number.module
--- format_number.module	24 Feb 2009 11:55:32 -0000	1.1.2.8
+++ format_number.module	17 Sep 2009 18:01:06 -0000
@@ -178,6 +178,26 @@ function format_number($number, $decimal
 }
 
 /**
+ * Formats numbers to a specified number of significant figures.
+ *
+ * @param number $number
+ *   The number to format.
+ * @param integer $sf
+ *   The number of significant figures to round and format the number to.
+ * @return string
+ *   The rounded and formatted number.
+ */
+function format_number_significant_figures($number, $sf) {
+  // How many decimal places do we round and format to?
+  // @note May be negative.
+  $dp = floor($sf - log10(abs($number)));
+  // Round as a regular number.
+  $number = round($number, $dp);
+  // Leave the formatting to format_number(), but always format 0 to 0dp.
+  return format_number($number, 0 == $number ? 0 : $dp);
+}
+
+/**
  * Parse a formatted number.
  *
  * This function implements lenient parsing when possible, and only falls
