Ich muss herausfinden, ob $profitloss negativ ist, und wenn ja, muss ich darauf hinweisen, dass es so ist.
Keine Sorge, wir haben alle unsere schlechten Tage 😉
– Martin
26. Mai 2011 um 7:47 Uhr
Ohh verdammt …. so eine einfache Lösung.. grr
– BigJobbies
26. Mai 2011 um 7:53 Uhr
Das ist einfach Pech ^^ Siehe meine Antwort unten, nur zum Spaß, Kumpel 😀
– Benutzer743234
26. Mai 2011 um 7:59 Uhr
Das ist einfach fantastisch, weil ich buchstäblich auf dieser Seite bin, weil ich die gleiche Frage hatte, aber zum Glück erinnerte ich mich, bevor ich die Antwort sah. Es ist so einfach, aber es zeigt nur, dass wir die Dinge oft zu kompliziert machen.
– Chud37
19. März 2020 um 13:54 Uhr
Siebenschläfer
if ($profitloss < 0)
{
echo "The profitloss is negative";
}
Bearbeiten: Ich habe das Gefühl, dass dies eine zu einfache Antwort für den Vertreter war, also ist hier etwas, das Sie vielleicht auch hilfreich finden.
In PHP können wir den absoluten Wert einer Ganzzahl finden, indem wir die verwenden abs() Funktion. Wenn ich zum Beispiel versuchen würde, den Unterschied zwischen zwei Zahlen herauszufinden, könnte ich das tun:
$turnover = 10000;
$overheads = 12500;
$difference = abs($turnover-$overheads);
echo "The Difference is ".$difference;
Dies würde produzieren The Difference is 2500.
sonst { echo “Hurra …”; }
– Naveed
26. Mai 2011 um 7:51 Uhr
Ich habe keine Ahnung, was du meinst, dieser hat einiges an Training erfordert.
– Siebenschläfer
26. Mai 2011 um 8:06 Uhr
Gute Antwort, ich mag deine Bearbeitung auch. Aber was ist der Unterschied zu $difference = $turnover - $overheads;?
– Hannes Schneidermayer
30. Januar 2014 um 8:33 Uhr
Oh wow, ich hatte nicht erwartet, dies nach fast drei Jahren zu kommentieren. abs() gibt den absoluten Wert einer beliebigen Ganzzahl zurück, also gibt abs(-100) 100 zurück. $turnover-$overheads würde zu -2500 führen, wohingegen abs($turnover-$overheads) ergibt 2500.
– Siebenschläfer
30. Januar 2014 um 16:29 Uhr
Mahn
Ich glaube, das ist, was Sie gesucht haben:
class Expression {
protected $expression;
protected $result;
public function __construct($expression) {
$this->expression = $expression;
}
public function evaluate() {
$this->result = eval("return ".$this->expression.";");
return $this;
}
public function getResult() {
return $this->result;
}
}
class NegativeFinder {
protected $expressionObj;
public function __construct(Expression $expressionObj) {
$this->expressionObj = $expressionObj;
}
public function isItNegative() {
$result = $this->expressionObj->evaluate()->getResult();
if($this->hasMinusSign($result)) {
return true;
} else {
return false;
}
}
protected function hasMinusSign($value) {
return (substr(strval($value), 0, 1) == "-");
}
}
Verwendungszweck:
$soldPrice = 1;
$boughtPrice = 2;
$negativeFinderObj = new NegativeFinder(new Expression("$soldPrice - $boughtPrice"));
echo ($negativeFinderObj->isItNegative()) ? "It is negative!" : "It is not negative :(";
Beachten Sie jedoch, dass eval eine gefährliche Funktion ist, verwenden Sie sie daher nur, wenn Sie wirklich, wirklich herausfinden müssen, ob eine Zahl negativ ist.
🙂
Sie, mein Herr, sind eine schreckliche, schreckliche Person :))
– Daniel
9. März 2013 um 15:39 Uhr
Mein Gott ist das genial.
– Mike P.
16. September 2013 um 21:33 Uhr
Obwohl ich das nicht getestet habe, sieht es so aus, als würde es erkennen -0!
– CJ Dennis
6. Februar 2016 um 0:05 Uhr
Das hat meinen Tag versüßt! Vielen Dank.
–Werner
15. Juli 2016 um 8:01 Uhr
Ich kann diese Antwort von nun an als meine Definition von “Over Engineering” verwenden.
if ($profitloss < 0):
echo "Less than 0\n";
endif;
if ( $profitloss < 0 ) {
echo "negative";
};
Versteh mich nicht falsch, aber du kannst es so machen 😉
function nagitive_check($value){
if (isset($value)){
if (substr(strval($value), 0, 1) == "-"){
return 'It is negative<br>';
} else {
return 'It is not negative!<br>';
}
}
}
Ausgabe:
echo nagitive_check(-100); // It is negative
echo nagitive_check(200); // It is not negative!
echo nagitive_check(200-300); // It is negative
echo nagitive_check(200-300+1000); // It is not negative!
Robson Vieira
Multiplizieren Sie einfach die Zahl mit -1 und prüfen Sie, ob das Ergebnis positiv ist.
Fügen Sie den Code zur Antwort hinzu, dann gebe ich Ihnen +1. 🙂
Keine Sorge, wir haben alle unsere schlechten Tage 😉
– Martin
26. Mai 2011 um 7:47 Uhr
Ohh verdammt …. so eine einfache Lösung.. grr
– BigJobbies
26. Mai 2011 um 7:53 Uhr
Das ist einfach Pech ^^ Siehe meine Antwort unten, nur zum Spaß, Kumpel 😀
– Benutzer743234
26. Mai 2011 um 7:59 Uhr
Das ist einfach fantastisch, weil ich buchstäblich auf dieser Seite bin, weil ich die gleiche Frage hatte, aber zum Glück erinnerte ich mich, bevor ich die Antwort sah. Es ist so einfach, aber es zeigt nur, dass wir die Dinge oft zu kompliziert machen.
– Chud37
19. März 2020 um 13:54 Uhr