2010-12-27 11 views
-1

Ich habe $sum und müssen die Summe minus 15% berechnen und dann muss ich den ursprünglichen Wert wieder anzeigen.PHP: grundlegende Prozentberechnung

$sum = 199; 
echo "value 1: $sum"; 
$sum = $sum*0.85; 
echo "value 2: $sum"; 
$foo = $sum*1.15; 
echo "value 3: $foo"; 

Dies ist das Ergebnis, das ich bekommen:

value 1: 199 
value 2: 169.15 
value 3: 194.5225 

Bitte informieren Sie eine sehr dumme Person, warum diese Formel offensichtlich falsch ist und nicht 199 in der letzten Ausgabe zurückgibt.

Antwort

0

Prozentsätze funktionieren nicht so. Sie können nicht einfach das Umgekehrte zum Ergebnis der ersten Operation machen. Sie sollten nur die ursprüngliche Nummer speichern und diese verwenden.

+0

Ging mit Ihrem Rat. Heute habe ich gelernt, dass sogar Mathe fehlschlagen kann, weil es keinen eingebauten Speicher hat. –

+1

Spiny Normans Antwort sagt, wie man die ursprüngliche Zahl zurückbekommt (durch Division - was umgekehrt zur Multiplikation ist). Daher ist es nicht notwendig, die ursprüngliche Nummer zu speichern. –

1

Es ist, weil 1/1,15 nicht gleich 0,85 ist.

+2

So wie ich das Problem lösen? Bitte, ich absolvierte die George W. Bush Schule der Mathematik, ich bin nicht schlau! –

+0

:) Nun, wenn Sie die Operation umkehren möchten, sollten Sie durch die Zahl teilen, die Sie multipliziert haben. In diesem Fall würden Sie '$ foo = $ sum/.85' machen. Allerdings, wie @ryeguy sagte, wenn Sie den ursprünglichen Wert benötigen, könnten Sie auch den ursprünglichen Wert drucken ... –

1

Grundsätzlich starten Sie mit und finden 85% davon (die Subtraktion 15%), die korrekt ist. Aber jetzt, wenn Sie versuchen, die 15% zurück zu gewinnen, tun Sie dies basierend auf dem Wert 15% of 169.15 (25,3725) nicht 15% of 199 (29.85).

Wie in einer anderen Antwort erwähnt, wenn Sie die ursprüngliche Nummer zurück benötigen, behalten Sie sie in einer Variablen und verwenden Sie eine temporäre Variable, um den Prozentsatz zu halten.

0
$sum = 199; 
echo "value 1: $sum<br />"; 
$sum2 = $sum*0.85; 
echo "value 2: $sum2<br />"; 
echo "value 3: $sum<br />"; 

Also, wer ist das Genie?

+0

Endlich kann ich sagen: DUH. –

4

Ich stimme allen zu, nur die ursprüngliche Variable beizubehalten. Allerdings ist die Single-Variable Antwort auf diese:

1.99 * .85 = 169.15 
169.15/.85 = 1.99 

ändern Operator;)

+0

'1.99 * .85 = 1.6915' – GusDeCooL