Moin!
@@Matthias Apsel
Brauchst du die Zahl ‚34‘?
0.34 ergibt 34, aber 0.3 ergibt 3?
Das denke ich, war nicht gemeint:
Ausgangswerte:
0.34 / 0.3 / 1.3
Ziel: "Alles vor dem Komma alles streichen":
.34 / .3 / 1.3
Ich denke nämlich und Hilfe der Kristallkugel, "Sabi" meint tatsächlich die führenden Nullen und ergänze das mal durch "auch nachfolgende Nullen":
<?php
$n=0.34;
$s=preg_replace('/0+$/','', preg_replace ('/^0/', '', sprintf('%f', $n)));
echo $s, "\n";
Von innen nach außen:
- sprintf('%f', 0.34) macht aus der Zahl 0.34 den String '0.34000'.
- preg_replace ('/^0/', '', '0.34000') entfernt die führende Null: '.34000'
- preg_replace ('/0+$/', '', '.34000') entfernt die hinten anhängenden Nullen: '.34'
Anders (besser, schlanker) formuliert:
<?php
$n=0.34;
$ar[]='/0+$/'; # Nullen hinten
$ar[]='/^0/'; # eine Null vorn
$s=preg_replace($ar, '', sprintf('%f', $n));
echo $s, "\n";
als Funktion:
<?php
function numToShortString($n) {
return preg_replace(array ('/0+$/', '/^0/'), '', sprintf('%f', $n));
}
echo numToShortString(0.34), "\n";
echo numToShortString(0.3), "\n";
echo numToShortString(1.3), "\n";
Ergebnisse:
.34
.3
1.3
Jörg Reinholz