note 106784 added to function.round

From: Date: Tue, 06 Dec 2011 14:41:00 +0000
Subject: note 106784 added to function.round
Groups: php.notes 
Request: Send a blank email to php-notes+get-184935@lists.php.net to get a copy of this message
<?php // ----------------------------------------------------------------------- // Funktion : cut_zeros // Zweck : Schneidet alle Nullen rechts von einer Zahl weg - inkl. Dezimal- // trennzeichen, falls es sich um eine Ganzzahl handelt. // Gruppe : utils // Argumente: $number (integer/float/string), $decimal_char (String, z.B. '.'), // $log_errors (Boolean, default = true) // Rueckgabe: Reine (String)Zahl mit Dezimaltrennzeichen, ohne andere Zeichen und ohne Nullen rechts (String) function cut_zeros($number,$decimal_char='.',$log_errors=true) { if ($decimal_char === '') { if ($log_errors) err('util_Error: cut_zeros("'.$number.'","'.$decimal_char.',"'.$log_errors.'"): Kein Dezimaltrennzeichen angegeben!'); return false; } // Dezimaltrennzeichen merken und sicherstellen, dass ein Punkt als Dezimaltrennzeichen in der Zahl vorhanden ist $decimal_char_orig = $decimal_char; if ($decimal_char != '.') { $number = str_replace($decimal_char,'.',$number); $decimal_char = '.'; } // Leerzeichen an Beginn und Ende wegschneiden UND (!) in String wandeln: $number_ok = trim($number); // Ungueltige Zeichen wegschneiden - z.B. auch Tausendertrennzeichen oder so: $number_ok = preg_replace("/[^0-9\\.-]*/",'',$number_ok); // Wir lesen die Anzahl Dezimaltrennzeichen im String aus: $anzahl_decimal_char = substr_count($number_ok,$decimal_char); if ($anzahl_decimal_char <= 1) { // a) Kein oder ein Dezimaltrennzeichen vorhanden: // 1.) Wir konvertieren in einen float // 2.) Wir ersetzen Punkt durch angegebenes Dezimaltrennzeichen // 3.) Wir retournieren den String return str_replace($decimal_char,$decimal_char_orig,(string)floatval($number_ok)); } else { // b) Mehr als ein Dezimaltrennzeichen vorhanden - Fehler retournieren if ($log_errors) err('util_Error: cut_zeros("'.$number.'","'.$decimal_char.',"'.$log_errors.'"): Argument enthaelt Dezimaltrennzeichen mehrfach und kann nicht konvertiert werden!'); return false; } }// End function cut_zeros ?> ---- Server IP: 194.153.94.10 Probable Submitter: 81.221.126.118 ---- Manual Page -- http://www.php.net/manual/en/function.round.php Edit -- https://master.php.net/note/edit/106784 Del: integrated -- https://master.php.net/note/delete/106784/integrated Del: useless -- https://master.php.net/note/delete/106784/useless Del: bad code -- https://master.php.net/note/delete/106784/bad+code Del: spam -- https://master.php.net/note/delete/106784/spam Del: non-english -- https://master.php.net/note/delete/106784/non-english Del: in docs -- https://master.php.net/note/delete/106784/in+docs Del: other reasons-- https://master.php.net/note/delete/106784 Reject -- https://master.php.net/note/reject/106784 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#184935) next »