| 
<?php
 /*
 * Number
 * @desc
 * @example
 
 echo "\n######################\n";
 $num = new Number(10.19212);
 $num->round();
 echo "ROUND            ".$num;
 
 $num = new Number(10.19212);
 $num->ceil();
 echo "\nCeil             ".$num;
 
 $num = new Number(10.19212);
 $num->floor();
 echo "\nFloor            ".$num;
 
 $num = new Number(101010.19212);
 $num->format();
 echo "\nFormat EN        ".$num;
 
 $num = new Number(101010.19212);
 $num->format(2,",",".");
 echo "\nFormat DE        ".$num;
 
 $num = new Number(101010.19212);
 $num->format(2,","," ");
 echo "\nFormat F         ".$num;
 
 $num = new Number(101010.19212);
 $num->prepend("EUR ")->format(2,","," ");
 echo "\nMoney EUR        ".$num;
 
 $num = new Number(101010.19212);
 $num->append(" EUR")->format(2,",",".");
 echo "\nMoney EUR        ".$num;
 
 $num = new Number(10.19212);
 $num->format(2,",",".")->padLeft(10);
 echo "\nPadLeft          ".$num;
 
 $num = new Number(10.19212);
 $num->format(2,",",".")->padRight(10);
 echo "\nPadRight         ".$num;
 *
 * @author Thomas Schaefer
 */
 class Number {
 
 private $error;
 private $string;
 private $pend = 0;
 private $number = 0;
 
 public function __construct($number=0) {
 $this->number = $number;
 }
 
 /**
 * casting functions
 */
 /**
 * toInt
 * @return void
 */
 public function toInt(){
 $this->number = (int) $this->number;
 return $this;
 }
 
 /**
 * toFloat
 * @return void
 */
 public function toFloat(){
 $this->number = (float) $this->number;
 return $this;
 }
 
 /**
 * formating functions
 */
 /**
 * format
 * @param int $decimals
 * @param string $dec_point
 * @param string $thousands_sep
 * @return void
 */
 public function format($decimals=2, $dec_point=".", $thousands_sep=""){
 $this->number = number_format($this->number, $decimals, $dec_point, $thousands_sep);
 return $this;
 }
 
 /**
 * Round
 * @param int $decimals
 * @return void
 */
 public function round($decimals=0){
 $this->number = round($this->number, $decimals);
 return $this;
 }
 
 /**
 * Ceil
 * @return void
 */
 public function ceil(){
 $this->number = ceil($this->number);
 return $this;
 }
 
 /**
 * Floor
 * @return void
 */
 public function floor(){
 $this->number = floor($this->number);
 return $this;
 }
 
 /**
 * toHex
 * @return string
 */
 public function toHex(){
 return dechex($this->number);
 }
 
 /**
 * fromHex
 * @param string $hex_string
 * @return void
 */
 public function fromHex($hex_string){
 $this->number = hexdec($hex_string);
 return $this;
 }
 
 /**
 * toBin
 * @return string
 */
 public function toBin(){
 return decbin($this->number);
 }
 
 /**
 * fromBin
 * @param string $binary_string
 * @return void
 */
 public function fromBin($binary_string){
 $this->number = bindec($binary_string);
 return $this;
 }
 
 /**
 * padLeft
 * @param int $length
 * @return void
 */
 public function padLeft($length){
 $this->number = str_pad($this->number,$length,"0",STR_PAD_LEFT);
 return $this;
 }
 
 /**
 * padRight
 * @param int $length
 * @return void
 */
 public function padRight($length){
 $this->number = str_pad($this->number,$length,"0",STR_PAD_RIGHT);
 return $this;
 }
 
 /**
 * append
 * @param string $string
 * @return void
 */
 public function append($string="€"){
 $this->string = $string;
 $this->pend = 1;
 return $this;
 }
 
 /**
 * prepend
 * @param string $string
 * @return prepend
 */
 public function prepend($string="€"){
 $this->string = $string;
 $this->pend = 2;
 return $this;
 }
 
 /**
 *
 * @return float|int
 */
 public function get() {
 return $this->number;
 }
 
 /**
 * __toString
 * @return int
 */
 public function __toString(){
 if($this->error instanceof Exception){
 return $this->error;
 }
 switch($this->pend){
 case 1:
 return (string) $this->number .$this->string;
 case 2:
 return (string) $this->string . $this->number;
 }
 return (string) $this->number;
 }
 }
 
 |