number.php
Go to the documentation of this file.00001 <?php 00002 /* SVN FILE: $Id: number_8php-source.html 675 2008-12-26 00:27:14Z gwoo $ */ 00003 /** 00004 * Number Helper. 00005 * 00006 * Methods to make numbers more readable. 00007 * 00008 * PHP versions 4 and 5 00009 * 00010 * CakePHP(tm) : Rapid Development Framework <http://www.cakephp.org/> 00011 * Copyright 2005-2008, Cake Software Foundation, Inc. 00012 * 1785 E. Sahara Avenue, Suite 490-204 00013 * Las Vegas, Nevada 89104 00014 * 00015 * Licensed under The MIT License 00016 * Redistributions of files must retain the above copyright notice. 00017 * 00018 * @filesource 00019 * @copyright Copyright 2005-2008, Cake Software Foundation, Inc. 00020 * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project 00021 * @package cake 00022 * @subpackage cake.cake.libs.view.helpers 00023 * @since CakePHP(tm) v 0.10.0.1076 00024 * @version $Revision: 675 $ 00025 * @modifiedby $LastChangedBy: gwoo $ 00026 * @lastmodified $Date: 2008-12-25 16:27:14 -0800 (Thu, 25 Dec 2008) $ 00027 * @license http://www.opensource.org/licenses/mit-license.php The MIT License 00028 */ 00029 /** 00030 * Number helper library. 00031 * 00032 * Methods to make numbers more readable. 00033 * 00034 * @package cake 00035 * @subpackage cake.cake.libs.view.helpers 00036 */ 00037 class NumberHelper extends Helper { 00038 /** 00039 * Formats a number with a level of precision. 00040 * 00041 * @param float $number A floating point number. 00042 * @param integer $precision The precision of the returned number. 00043 * @return float Enter description here... 00044 * @access public 00045 */ 00046 function precision($number, $precision = 3) { 00047 return sprintf("%01.{$precision}f", $number); 00048 } 00049 00050 /** 00051 * Returns a formatted-for-humans file size. 00052 * 00053 * @param integer $length Size in bytes 00054 * @return string Human readable size 00055 * @access public 00056 */ 00057 function toReadableSize($size) { 00058 switch($size) { 00059 case 0: 00060 return '0 Bytes'; 00061 case 1: 00062 return '1 Byte'; 00063 case $size < 1024: 00064 return $size . ' Bytes'; 00065 case $size < 1024 * 1024: 00066 return NumberHelper::precision($size / 1024, 0) . ' KB'; 00067 case $size < 1024 * 1024 * 1024: 00068 return NumberHelper::precision($size / 1024 / 1024, 2) . ' MB'; 00069 case $size < 1024 * 1024 * 1024 * 1024: 00070 return NumberHelper::precision($size / 1024 / 1024 / 1024, 2) . ' GB'; 00071 case $size < 1024 * 1024 * 1024 * 1024 * 1024: 00072 return NumberHelper::precision($size / 1024 / 1024 / 1024 / 1024, 2) . ' TB'; 00073 } 00074 } 00075 00076 /** 00077 * Formats a number into a percentage string. 00078 * 00079 * @param float $number A floating point number 00080 * @param integer $precision The precision of the returned number 00081 * @return string Percentage string 00082 * @access public 00083 */ 00084 function toPercentage($number, $precision = 2) { 00085 return NumberHelper::precision($number, $precision) . '%'; 00086 } 00087 } 00088 ?>