Wie kann ich all diese in negative Floats ändern, damit sie werden:
-4.50
-6.25
-8.00
-1.75
Außerdem brauche ich einen Weg, um das Gegenteil zu tun
Wenn der Schwimmer negativ ist, machen Sie ihn positiv.
Beachten Sie, dass die Umkehrung nicht wie die Umkehrung der ersten klingt. Wenn du alle Vorzeichen deines ersten Zahlensatzes auf negativ änderst und sie dann alle wieder auf positiv drehst, hast du nicht die Zahlen, mit denen du begonnen hast.
– Programmrock
1. Juni 2018 um 13:58 Uhr
drAlberT
Ein triviales
$num = $num <= 0 ? $num : -$num ;
oder, die bessere Lösung, IMHO:
$num = -1 * abs($num)
Wie @VegardLarsen gepostet hat,
Die explizite Multiplikation kann aus Gründen der Kürze vermieden werden, aber ich bevorzuge die Lesbarkeit gegenüber der Kürze
Ich schlage vor, if/else (oder einen gleichwertigen ternären Operator) zu vermeiden, insbesondere wenn Sie eine Reihe von Elementen bearbeiten müssen (in einer Schleife oder mit a Lambda-Funktion), da dies die Leistung beeinträchtigt.
“Wenn der Schwimmer negativ ist, machen Sie ihn positiv.”
Um das Vorzeichen einer Zahl zu ändern, können Sie einfach Folgendes tun:
$num = 0 - $num;
oder natürlich mit -1 multiplizieren 🙂
Ups, ja sorry, habe gerade die Reihenfolge umgekehrt 🙂
– drAlberT
17. September 2009 um 11:08 Uhr
Ha, ok… für eine Sekunde zweifelte ich an meinem eigenen Verstand.
– DanTao
17. September 2009 um 11:10 Uhr
Warum sollte es performanter sein, den absoluten Wert einer Variablen zu erhalten, ihn zu invertieren und dieser Variablen neu zuzuweisen, egal welchen Wert er hat?
– Gumbo
17. September 2009 um 11:26 Uhr
Ich könnte mich irren, aber ich bin mir ziemlich sicher, dass Sie, da Sie eine Operation unter bestimmten Bedingungen ausführen ($num ist positiv) und nicht unter anderen ($num <= 0), immer eine if-Anweisung verwenden werden irgendwo. Führt abs($num) nicht einfach $num = ($num >= 0) aus? $num : -$num; unter der Haube?
– DanTao
17. September 2009 um 11:36 Uhr
Sie haben Recht, aber es würde auf niedrigem Niveau in C durchgeführt werden. Durch PHP, nicht in PHP.
– drAlberT
17. September 2009 um 11:46 Uhr
Vegard Larsen
$float = -abs($float);
“Außerdem brauche ich einen Weg, um das Gegenteil zu tun”, diese Antwort bewirkt nur eines …
– RespawnN
9. Juli 2018 um 12:07 Uhr
@ReSpawN Um fair zu sein, nimmt das Gegenteil buchstäblich nur das - Weg. dh $float = abs($float);
– Fritten
23. Mai 2019 um 10:19 Uhr
Wert wird immer negativ sein. erwartet, es zu erwähnen.
– ShivarajRH
3. September 2019 um 7:51 Uhr
Gumbo
Wie wäre es mit etwas Trivialem wie:
invertieren:
$num = -$num;
nur positiv in negativ umwandeln:
if ($num > 0) $num = -$num;
nur negativ in positiv umwandeln:
if ($num < 0) $num = -$num;
SilentGhost
nochmal die Bearbeitung: “Außerdem brauche ich einen Weg, um das Gegenteil zu tun. Wenn der Float negativ ist, mach ihn positiv.”
$number = -$number;
ändert die Zahl in ihr Gegenteil.
Dan Tao
Ich denke, Gumbos Antwort ist in Ordnung. Einige Leute bevorzugen diesen ausgefallenen Ausdruck, der dasselbe tut:
$int = (($int > 0) ? -$int : $int);
BEARBEITEN: Anscheinend suchen Sie nach einer Funktion, die auch Negative positiv macht. Ich denke, diese Antworten sind die einfachsten:
/* I am not proposing you actually use functions called
"makeNegative" and "makePositive"; I am just presenting
the most direct solution in the form of two clearly named
functions. */
function makeNegative($num) { return -abs($num); }
function makePositive($num) { return abs($num); }
warum wickeln Abs() wenn es so verwendet wird? nö.
– drAlberT
17. September 2009 um 13:45 Uhr
Wallace Vizerra
function positive_number($number)
{
if ($number < 0) {
$number *= -1;
}
return $number;
}
warum wickeln Abs() wenn es so verwendet wird? nö.
– drAlberT
17. September 2009 um 13:45 Uhr
Frederik Krautwald
function invertSign($value)
{
return -$value;
}
Danke, dass Sie kommentiert haben, warum Sie abgelehnt haben. Sehr nützlich.
– Frederik Krautwald
10. Dezember 2016 um 4:13 Uhr
Ich denke, das liegt daran, dass das OP ursprünglich angegeben hat, dass nur positive Zahlen das Vorzeichen umkehren sollen. Aber die Frage ist ziemlich verwirrend mit dem mehrdeutigen Bolzen: “Auch ich brauche einen Weg, um das Gegenteil zu tun”.
Beachten Sie, dass die Umkehrung nicht wie die Umkehrung der ersten klingt. Wenn du alle Vorzeichen deines ersten Zahlensatzes auf negativ änderst und sie dann alle wieder auf positiv drehst, hast du nicht die Zahlen, mit denen du begonnen hast.
– Programmrock
1. Juni 2018 um 13:58 Uhr