Mailinglisten-Archive |
Michael Renner schrieb:
> Jede Null nach dem Dezimalpunkt soll weg, so dass
> 12.000 = 12 wird, aber
> 12.300 = 12.3 wird.
> Ich versuche es mit eregreplace(), nur fehlt der rettende
> Ausdruck :-(
Warum einfach, wenn es auch kompliziert geht(oder so?)
function formatiere($temp)
{
$temp = explode(".", $temp);
$max = strlen($temp[1])-1;
$y = (string)$temp[1];
$flag = 0;
for($i = $max; $i >= 0; $i--)
{
echo $y[$i]."<br>";
if(($y[$i] > 0) || ($flag == 1))
{
$ext[]= $y[$i];
$flag = 1;
}
}
if(count($ext)==0)
{
$zahl = (int)$temp[0];
}
else
{
_(at)_krsort($ext);
$zahl = (double)$temp[0]."."._(at)_implode("",$ext);
}
return $zahl;
}
echo formatiere(127.001400);
kürzt eine beliebig lange Zahl um überflüssige Nullen ;-)
Du suchst aber vermutlich:
preg_replace("=((\.[0-9]*[1-9]{1})0*)|(\.0+)$=", "\\2", $zahl);
Guido Haeger
php::bar PHP Wiki - Listenarchive