PHP: höchste in 10er Schritten Zahl ausgeben?

3 Antworten

$i = 0;
$grenze = "81";
while ($i < $grenze) $i += 10;
print $i;

Nicht getestet, aber so in etwa. Ginge auch ohne Schleife einfacher so:

$zahl = "81";
$rest = $zahl % 10;
$i = $zahl - $rest;
print $i;

Das klappt, weil PHP so schön hin- und hercastet auch mit Strings.


TimMagFussball 
Beitragsersteller
 17.06.2019, 16:47

wieso die 81 ?? waren beispiele die ändert sich ständig

ohwehohach  17.06.2019, 16:49
@TimMagFussball

Weil Du 69 und 81 als Beispiele angegeben hast. Wenn Du nicht flexibel genug bist, den Code jetzt auf Deine Bedürfnisse anzupassen (z.B. durch geeignetes Ersetzen der Beispieldaten), dann ist das ja nicht mein Problem ;-)

Hätte ich keinen Zahlenwert angegeben, hättest Du gefragt "Was ist $grenze" und "$zahl wird nicht gefunden - hä?". So kann es wenigstens ausgeführt werden.

Im ersten Beispiel muss es heißen

while ($i + 10 < $grenze) ...
ohwehohach  17.06.2019, 16:54
@TimMagFussball

Du hast einen String mit einer Zahl, wie Du selbst schon schreibst. Der String heißt im ersten Beispiel $grenze und im zweiten Beispiel $zahl. Mehr ist dazu auch nicht zu sagen.

ich habe einen string mit einer zahl. z.b. 69. will jetzt aber immer die nächst höchste mit 10er schritten ausgeben, also 60.

60 ist nicht die nächst höhere Zahl von 69. Das wäre nach Deiner Beschreibung 70. Ich denke was Du suchst ist die floor Funktion. Du teilst Deine Zahl durch 10, nimmst den floor, und multiplizierst mit 10:

$zahl = 69;
$zahl = $zahl / 10;    # ergibt 6.9
$zahl = floor($zahl);  # ergibt 6
$zahl = $zahl * 10;    # ergibt 60

$zahl = 81;
$zahl = $zahl / 10;    # ergibt 8.1
$zahl = floor($zahl);  # ergibt 8
$zahl = $zahl * 10;    # ergibt 80

Alex


Ascy70  17.06.2019, 17:34

Geht das auch?

$zahl = floor($zahl/10)*10 ;

EinAlexander  17.06.2019, 17:36
@Ascy70
Geht das auch?

Was meinst Du mit "auch"? Das ist doch exakt das, was ich geschrieben habe; nur zusammengefasst in einer (für einen Laien unübersichtlicheren) Zeile.

Ascy70  17.06.2019, 17:38
@EinAlexander

Supi das war das was ich wissen wollte. War mir nicht sicher ob ichs kapiert hab. Danke ein Anfänger

Sollte mit einer While schleife funktionieren. Ich kann PHP leider nicht so gut und kann dir das nur in Pseudo-Code hinklatschen:

while(deine Zahl % 10 != 0)
deineZahl--;

Am ende ist deine Zahl deine gewünschte

Woher ich das weiß:Berufserfahrung – Anwendungsentwickler (vorwiegend .NET)

ohwehohach  17.06.2019, 16:52

Naja, wenn Du %10 rechnest, dann weißt Du doch schon, wieviel Du von der Zahl abziehen musst, um zum nächst kleineren ganzen Zehner zu kommen. Da ist die Schleife dann auch unnötig.