Zahl vor dem Komma runden?

deintag85

Erfahrenes Mitglied
Hallo,

nehmen wir mal an ich hab die Zahl 34567

Was muss ich machen dass er mir die Zahl abrundet auf 30000? Ich weiss wie man eine Zahl nach dem Komma auf x Stellen rundet, aber wie runde
ich eine Zahl vor dem Komma?

Ich weiss ja vorher nicht welche Zahl kommt, also muss die Lösung allgemein für jede x-beliebige Zahl sein.

Also 1 bleibt 1, 23 wird zu 20, 234 wird zu 200 usw....

Wäre schön wenn mir jemand helfen kann. Vllt ist die Lösung ja super einfach, aber ich komm einfach nicht drauf.

LG
 
nehmen wir mal an ich hab die Zahl 34567

Was muss ich machen dass er mir die Zahl abrundet auf 30000? Ich weiss wie man eine Zahl nach dem Komma auf x Stellen rundet, aber wie runde
ich eine Zahl vor dem Komma?

Dein Problem auf eine Lösbare ebene schaffen:

Code:
34567 / 10000 -> 3,4567 -> 3 -> 10000 * 3 = 30000

Durch welche Zehnerpotenz man teilt kriegst du natürlich mit dem logarithmus (Basis 10) heraus.

bsp:
log(34567) = 4,538661... -> abrunden 4
34567 / (10^4)

P.S. : Nur eine Lösung die deinen Wissensstand nutzen würde. Mit ein bisschen nachdenken kommt man überall hin ;)

Das lesen vom Manual hilft auch ;) Es gibt eine Funktion dafür: http://php.net/manual/en/function.round.php
 
Zuletzt bearbeitet:
Hallo,
ja bei Mathematik happert es noch ein wenig bei mir ^^

Hab es so gelöst gehabt ^^

$zahl = 34567;
$i = 1;

while ($zahl > 10)
{
$zahl /= 10;
$i *= 10;
}

$zahl = round($zahl,0);
$zahl *= $i;
echo $zahl."<br>";

Aber ich glaube deine Lösung ist etwas kürzer vom Code her ^^

Danke
 
Zu umständlich ;)

was ZodiacXP meinte, war eher sowas in diese Richtung:

PHP:
<?php
function roundInt($int)
{
	return round($int, -(strlen($int)-1));
}

echo roundInt(1);
echo roundInt(15);
echo roundInt(147);
echo roundInt(18712);

?>
 
Zurück