summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDerek Allard <derek.allard@ellislab.com>2010-01-17 17:13:15 +0100
committerDerek Allard <derek.allard@ellislab.com>2010-01-17 17:13:15 +0100
commitfcbb0266468db83d2d8d4006d80f77445fd6a0e2 (patch)
treef405797866eb38c5087e72ca7ad0c1470b4e8347
parentb251c522205973bfc3992e22d70827eb0c2b1b7a (diff)
optional precision argument in byte_format()
-rw-r--r--system/helpers/number_helper.php14
-rw-r--r--user_guide/changelog.html1
-rw-r--r--user_guide/helpers/number_helper.html8
3 files changed, 16 insertions, 7 deletions
diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php
index cf683f2a1..1fdd30326 100644
--- a/system/helpers/number_helper.php
+++ b/system/helpers/number_helper.php
@@ -36,29 +36,29 @@
*/
if ( ! function_exists('byte_format'))
{
- function byte_format($num)
+ function byte_format($num, $precision = 1)
{
$CI =& get_instance();
$CI->lang->load('number');
if ($num >= 1000000000000)
{
- $num = round($num / 1099511627776, 1);
+ $num = round($num / 1099511627776, $precision);
$unit = $CI->lang->line('terabyte_abbr');
}
elseif ($num >= 1000000000)
{
- $num = round($num / 1073741824, 1);
+ $num = round($num / 1073741824, $precision);
$unit = $CI->lang->line('gigabyte_abbr');
}
elseif ($num >= 1000000)
{
- $num = round($num / 1048576, 1);
+ $num = round($num / 1048576, $precision);
$unit = $CI->lang->line('megabyte_abbr');
}
elseif ($num >= 1000)
{
- $num = round($num / 1024, 1);
+ $num = round($num / 1024, $precision);
$unit = $CI->lang->line('kilobyte_abbr');
}
else
@@ -67,9 +67,11 @@ if ( ! function_exists('byte_format'))
return number_format($num).' '.$unit;
}
- return number_format($num, 1).' '.$unit;
+ return number_format($num, $precision).' '.$unit;
}
}
+
+
/* End of file number_helper.php */
/* Location: ./system/helpers/number_helper.php */ \ No newline at end of file
diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index b94e747e7..3bee5d30a 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -89,6 +89,7 @@ SVN Revision: </p>
by default so as to encourage responsible use (this function can cause server performance issues when used without caution).</li>
<li>Modified the second parameter of <kbd>directory_map()</kbd> in the <a href="helpers/directory_helper.html">Directory Helper</a> to accept an integer to specify recursion depth.</li>
<li>Modified <kbd>delete_files()</kbd> in the <a href="helpers/file_helper.html">File Helper</a> to return FALSE on failure.</li>
+ <li>Added an optional second parameter to <kbd>byte_format()</kbd> in the <a href="helpers/number_helper.html">Number Helper</a> to allow for decimal precision.</li>
</ul>
</li>
<li>Other Changes
diff --git a/user_guide/helpers/number_helper.html b/user_guide/helpers/number_helper.html
index 722b7f6ec..545c4b76d 100644
--- a/user_guide/helpers/number_helper.html
+++ b/user_guide/helpers/number_helper.html
@@ -76,13 +76,19 @@ Number Helper
<code>
echo byte_format(456); // Returns 456 Bytes<br />
echo byte_format(4567); // Returns 4.5 KB<br />
-echo byte_format(45678); // Returns 44.8 KB<br />
+echo byte_format(45678); // Returns 44.6 KB<br />
echo byte_format(456789); // Returns 447.8 KB<br />
echo byte_format(3456789); // Returns 3.3 MB<br />
echo byte_format(12345678912345); // Returns 1.8 GB<br />
echo byte_format(123456789123456789); // Returns 11,228.3 TB
</code>
+<p>An optional second parameter allows you to set the precision of the result.</p>
+
+<code>
+echo byte_format(45678, 2); // Returns 44.61 KB
+</code>
+
<p class="important">
<strong>Note:</strong>
The text generated by this function is found in the following language file: language/<your_lang>/number_lang.php