acf
This commit is contained in:
		
							
								
								
									
										63
									
								
								plugins/system/nrframework/NRFramework/Helpers/Number.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								plugins/system/nrframework/NRFramework/Helpers/Number.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * @author          Tassos Marinos <info@tassos.gr> | ||||
|  * @link            https://www.tassos.gr | ||||
|  * @copyright       Copyright © 2024 Tassos All Rights Reserved | ||||
|  * @license         GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later | ||||
|  */ | ||||
|  | ||||
| namespace NRFramework\Helpers; | ||||
|  | ||||
| defined('_JEXEC') or die; | ||||
|  | ||||
| class Number | ||||
| { | ||||
| 	/** | ||||
| 	 * Converts a number into a short version, eg: 1000 -> 1k | ||||
| 	 * | ||||
| 	 * @param	Number		$n			The number to create the shorter version | ||||
| 	 * @param	integer		$precision	 | ||||
| 	 *  | ||||
| 	 * @return	string		The shorter version of the given number | ||||
| 	 */ | ||||
| 	public static function toShortFormat($n, $precision = 1) | ||||
| 	{ | ||||
| 		if ($n < 900) | ||||
| 		{ | ||||
| 			// 0 - 900 | ||||
| 			$n_format = number_format($n, $precision); | ||||
| 			$suffix = ''; | ||||
| 		} else if ($n < 900000) | ||||
| 		{ | ||||
| 			// 0.9k-850k | ||||
| 			$n_format = number_format($n / 1000, $precision); | ||||
| 			$suffix = 'K'; | ||||
| 		} else if ($n < 900000000) | ||||
| 		{ | ||||
| 			// 0.9m-850m | ||||
| 			$n_format = number_format($n / 1000000, $precision); | ||||
| 			$suffix = 'M'; | ||||
| 		} else if ($n < 900000000000) | ||||
| 		{ | ||||
| 			// 0.9b-850b | ||||
| 			$n_format = number_format($n / 1000000000, $precision); | ||||
| 			$suffix = 'B'; | ||||
| 		} else | ||||
| 		{ | ||||
| 			// 0.9t+ | ||||
| 			$n_format = number_format($n / 1000000000000, $precision); | ||||
| 			$suffix = 'T'; | ||||
| 		} | ||||
| 	 | ||||
| 		// Remove unecessary zeroes after decimal. "1.0" -> "1"; "1.00" -> "1" | ||||
| 		// Intentionally does not affect partials, eg "1.50" -> "1.50" | ||||
| 		if ($precision > 0) | ||||
| 		{ | ||||
| 			$dotzero = '.' . str_repeat( '0', $precision ); | ||||
| 			$n_format = str_replace( $dotzero, '', $n_format ); | ||||
| 		} | ||||
| 	 | ||||
| 		return $n_format . $suffix; | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user