Zahl formatieren
NiX
- php
0 wahsaga0 NiX0 wahsaga0 Benedikt Loepp0 NiX
Guten Tag.
Ich möchte eine Zahl, von der ich nicht weiss ob Sie Bsp. 60, 60.00, 60.60 oder 60.66 lautet formatieren und zwar so:
Immer ohne ende Nullen, also:
60 -> 60
60.00 -> 60
60.60 -> 60.6
60.66 -> 60.66
Wenn ich eine Zahl wie 60 habe und daraus 60.00 machen will, benutze ich ja sprintf(...);
Wie mache ich das hier?
Grüsse,
NiX.
hi,
Ich möchte eine Zahl, von der ich nicht weiss ob Sie Bsp. 60, 60.00, 60.60 oder 60.66 lautet formatieren und zwar so:
Immer ohne ende Nullen, also:
60 -> 60
60.00 -> 60
60.60 -> 60.6
60.66 -> 60.66
Wenn ich eine Zahl wie 60 habe und daraus 60.00 machen will, benutze ich ja sprintf(...);
Wie mache ich das hier?
gibt php zahlen nicht sowieso immer ohne rechtsstehende nullen nach dem punkt aus?
oder hast du vllt. die 'zahl' als string vorliegen?
dann könntest du mit den string funktionen alle rechts stehenden nullen abschneiden; natürlich nur die _nach_ dem punkt, also vorher danach suchen.
gruss,
wahsaga
Hallo
oder hast du vllt. die 'zahl' als string vorliegen?
Ja, ist eben ein String.
dann könntest du mit den string funktionen alle rechts stehenden nullen abschneiden; natürlich nur die _nach_ dem punkt, also vorher danach suchen.
Nein, manchmal gibt es ja nach dem Punkt noch eine "Kommazahl"
Grüsse,
NiX.
hi,
dann könntest du mit den string funktionen alle rechts stehenden nullen abschneiden; natürlich nur die _nach_ dem punkt, also vorher danach suchen.
Nein, manchmal gibt es ja nach dem Punkt noch eine "Kommazahl"
deshalb sagte ich ja auch die nach dem punkt stehenden _nullen_ - von rechts aus gesehen! - abschneiden.
also quasi von rechts aus anfangen, und solange die äussere ziffer eine '0' ist, wegschmeissen - und beim ersten zeichen ungleich '0' (also punkt oder andere ziffer) aufhören.
gruss,
wahsaga
Hallo,
ist zwar vielleicht ein wenig umständlich gescriptet (hab ich grad auf die Schnelle gemacht), sollte dir aber helfen:
<?php
function delete_nulls($input, $check)
{
if($check=="on")
{
$komma=explode(".", $input);
$befor_komma=$komma['0'];
$after_komma=$komma['1'];
}
else
{
$after_komma=$input;
}
$after_komma_len=strlen($after_komma);
$after_komma_last=strrpos($after_komma, "0")+1;
if($after_komma_len==$after_komma_last)
{
$after_komma=substr($after_komma, "0", $after_komma_last-1);
$after_komma_len_check=strlen($after_komma)-1;
if(substr($after_komma, $after_komma_len_check, 1)=="0")
{
$after_komma=delete_nulls($after_komma, "off");
}
}
else
{
$check="on";
}
if($check=="on")
{
if(isset($after_komma))
{
$output=$befor_komma.".".$after_komma;
}
else
{
$output=$befor_komma;
}
}
else
{
$output=$after_komma;
}
return $output;
}
echo delete_nulls("50.0500", "on");
?>
Mit "delete_nulls("der zahl", "on") rufst du die Funktion auf!
Ich garantiere für nichts! gg
cu Benedikt Loepp
Hallo.
OK, danke es geht nun ;-)
Grüsse, NiX.