dezimal zahlen kürzen ohne zu runden
Aquila
- php
0 Thomas Meinike0 Tom
0 Tom
hi,
ich suche eine php funktion, mit der ich dezimal zahlen nach der ersten stelle hinterm komma abschneiden kann, ohne das gerundet wird.
wär cool, wenn einer sowas weiss,
danke,
Aquila
Hallo,
ich suche eine php funktion, mit der ich dezimal zahlen nach der ersten stelle hinterm komma abschneiden kann, ohne das gerundet wird.
Z. B. so:
printf("%.1f",floor($zahl*10)/10);
MfG, Thomas
Hello,
printf("%.1f",floor($zahl*10)/10);
echo substr($zahl,0,str_pos($zahl,'.')+2);
könnte auch funktionieren, voruasgesetzt, dass ein Punkt drin ist.
Besser, man baut sich eine vernünftige Funktion dafür.
Die Lösung mit der Multiplikation kann an den Bereichsgrenzen hässliche Seiteneffekte bringen.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
habe noch ein bisschen gebastelt:
function cut_dec($zahl, $len=2)
{
$pos = strpos($zahl,'.');
if (($pos !== false))
{
if ($len > 0)
{
$zahl = substr($zahl.str_pad('0',$len,'0'),0,$pos+$len+1);
}
elseif ($len == 0)
{
$zahl = substr($zahl.str_pad('0',$len,'0'),0,$pos+$len);
}
}
return $zahl;
}
Bisschen hübscher machen musst Du sie dir selber. Bei negativen Längenvorgaben werden diese ignoriert, bei Weglassen der Länge
echo cut_dec($zahl)
wwerden immer 2 Nachkommastellen angezeigt, bei Längenvorgaben größer 0 wird diese benutzt. Ist die Vorgabe größer als die vorhandenen Nachkommastellen, wird mit 0 aufgefüllt.
Wenn kein Dezimalpunkt in der Zahl enthalten ist, wird die zahl unverändert
zurückgegeben.
Fehlermöglichkeiten:
Liebe Grüße aus http://www.braunschweig.de
Tom