@@Melvin Cowznofski
// Gegeben sind 2 Preise, von denen jeder der größere sein könnte: $preis_1 = floatval(25); $preis_2 = floatval(14.95); // Die 2 Preise kommen in ein Array und werden nach Größe sortiert. // Der erste Wert des Arrays ist dann der niedrigere Preis: $preise = array($preis_1, $preis_2);
Wieso packst du die Werte erst in Variablen und nicht gleich in ein Array?
sort($preise);
Die Sache mit dem Array und dem Sortieren kannst du dir sparen, indem du abs($preis_1 - $preis_2) / min($preis_1, $preis_2)
berechnest.
// Der erste, kleinere Preis ist 100%. // Berechnet wird nun, wieviel % somit der größere Preis ist. // Zieht man davon 100 ab, weiß man, um wieviel % der 2. Preis höher ist. // Das Ergebnis wird dann noch auf die Einserstelle gerundet: $prozent = round(($preise[1]*100/$preise[0])-100);
round(($preise[1] / $preise[0] - 1) * 100)
sieht einfacher und verständlicher aus.
// Ergebnis: echo $preise[1].'€ ist um '.$prozent.'% teurer als '.$preise[0].'€.';
echo ….….…
ist auch ein recht sicheres Indiz, dass man etwas falsch™ macht.
Mit Platzhaltern: printf('%2$01.2f€ ist um %3$d%% teurer als %1$01.2f€.', $preise[0], $preise[1], $prozent)
oder bei Ausgabe in HTML: <?= $preise[1] ?>€ ist um <?= $prozent ?>% teurer als <?= $preise[0] ?>€.
Und zwischen der Zahl und dem €-Zeichen sollte eigentlich Leerraum sein, vorzugszweise U+202F NARROW NO-BREAK SPACE; in HTML also … €
LLAP 🖖
--
Ist diese Antwort anstößig? Dann könnte sie nützlich sein.
Ist diese Antwort anstößig? Dann könnte sie nützlich sein.