Um dies in eine positive Zahl umzuwandeln, habe ich die Methode abs () wie folgt verwendet:
a = abs(a);
Das Ergebnis ist a = 0.000000;
Aber ich brauche das Ergebnis als 0.340515.
Kann mir jemand sagen, wie man das macht.
Warum ist dies mit Objective C gekennzeichnet, wenn es doch um C++ geht?
– Wels_Man
20. Januar 2011 um 9:57 Uhr
@Catfish_Man: eigentlich geht es um C.
– JeremyP
20. Januar 2011 um 11:29 Uhr
vielleicht mit -1 multiplizieren?
– Rezo Megrelidze
8. Januar 2015 um 11:44 Uhr
Der Vorschlag von @RezoMegrelidze ist zu 100 % in Ordnung, falls Sie nicht eine ganze Bibliothek nur für einen einzigen Zweck einbinden möchten. Zugegeben, Sie müssen sich zu 100 % sicher sein, dass Sie es mit einer negativen Zahl zu tun haben: t1 = t1 < 0 ? -1*t1 : t1; Ich würde vermuten, das ist alles abs Familie tut in diesem Szenario. | Alternativ können Sie den negativen Wert von 0 subtrahieren: t1 = t1 < 0 ? 0-t1 : t1; In Anbetracht dessen ist die Standardlösung immer noch günstig, da sie eher sofort klar ist. Mach was du willst, aber behalte das im Hinterkopf.
– Superkat
27. August 2015 um 3:28 Uhr
Jason Coco
abs() ist nur für ganze Zahlen. Verwenden Sie für Fließkommazahlen fabs() (oder einer der fabs() Linie mit der richtigen Genauigkeit für das, was a tatsächlich ist)
Wenn man sich nicht allzu viele Sorgen um schmutzige Sachen macht, kann man auch tun: if(a<0.0) a=-a;.
– Romain
20. Januar 2011 um 9:56 Uhr
@Romain: Ich staune immer wieder darüber, wie Leute Standardlösungen für etwas Selbstkodiertes meiden. Was hat Ihr Code im Vorteil gegenüber der von Jason bereitgestellten Lösung?
– DevSolar
29. August 2013 um 7:17 Uhr
@DevSolar Ich war damals jung und dumm.
– Romain
30. August 2013 um 20:36 Uhr
@Romain: Ihr Code funktioniert nicht richtig für negative Null, dh wenn a == -0.0;
– Milan Babuškov
29. September 2015 um 21:11 Uhr
Sie müssen verwenden:
abs() für int fabs() für doppelt fabsf() für schweben
Die obige Funktion wird auch funktionieren, aber Sie können auch so etwas ausprobieren.
if(a<0)
{
a=-a;
}
Du kannst es versuchen, ja. Aber sollten Sie?
– glglgl
29. August 2013 um 8:07 Uhr
+ 1 fabsf() für Float. Richtiger als die akzeptierte Antwort.
– Kevin
7. Januar 2014 um 2:08 Uhr
falls (a<0) a=-a; funktioniert nicht richtig für negative Null, dh wenn a == -0.0;
– Milan Babuškov
29. September 2015 um 21:12 Uhr
Gaurav
Verwenden float fabsf (float n) zum float Werte.
Verwenden double fabs (double n) zum double Werte.
Verwenden long double fabsl(long double) zum long double Werte.
Verwenden abs(int) zum int Werte.
Nun, in der Mathematik braucht man nur, um eine negative Zahl in eine positive Zahl umzuwandeln mehrere die negative Zahl um -1;
Dann könnte Ihre Lösung so aussehen:
a = a * -1;
oder kürzer:
a *= -1;
a *= (-1);
Problem gelöst. Wenn es eine kleinere Lösung für ein Problem gibt, warum sucht ihr dann eine komplexe Lösung? Bitte weisen Sie die Leute auch an, die Basislogik zu verwenden, weil nur dann die Leute ihre Programmierlogik trainieren können.
Weil abs() ist in einigen Fällen nützlicher, z. B. wenn Sie eine Zahl haben, die sowohl positiv als auch negativ sein kann. In diesem Fall funktioniert die Multiplikation mit -1 nicht.
– DerGoldeneBaum
23. Mai um 14:36 Uhr
Neurotrin
floor a;
floor b;
a = -0.340515;
also was tun?
b = 65565 +a;
a = 65565 -b;
oder
if(a < 0){
a = 65565-(65565+a);}
Weil abs() ist in einigen Fällen nützlicher, z. B. wenn Sie eine Zahl haben, die sowohl positiv als auch negativ sein kann. In diesem Fall funktioniert die Multiplikation mit -1 nicht.
– DerGoldeneBaum
23. Mai um 14:36 Uhr
Dharman
das ist die einzige Möglichkeit, die ich mir vorstellen kann.
//positive to minus
int a = 5; // starting with 5 to become -5
int b = int a * 2; // b = 10
int c = a - b; // c = - 5;
std::cout << c << endl;
//outputs - 5
//minus to positive
int a = -5; starting with -5 to become 5
int b = a * 2;
// b = -10
int c = a + b
// c = 5
std::cout << c << endl;
//outputs 5
Funktionsbeispiele
int b = 0;
int c = 0;
int positiveToNegative (int a) {
int b = a * 2;
int c = a - b;
return c;
}
int negativeToPositive (int a) {
int b = a * 2;
int c = a + b;
return c;
}
14098000cookie-checkwie man aus negativen zahlen positive machtyes
Warum ist dies mit Objective C gekennzeichnet, wenn es doch um C++ geht?
– Wels_Man
20. Januar 2011 um 9:57 Uhr
@Catfish_Man: eigentlich geht es um C.
– JeremyP
20. Januar 2011 um 11:29 Uhr
vielleicht mit -1 multiplizieren?
– Rezo Megrelidze
8. Januar 2015 um 11:44 Uhr
Der Vorschlag von @RezoMegrelidze ist zu 100 % in Ordnung, falls Sie nicht eine ganze Bibliothek nur für einen einzigen Zweck einbinden möchten. Zugegeben, Sie müssen sich zu 100 % sicher sein, dass Sie es mit einer negativen Zahl zu tun haben:
t1 = t1 < 0 ? -1*t1 : t1;
Ich würde vermuten, das ist allesabs
Familie tut in diesem Szenario. | Alternativ können Sie den negativen Wert von 0 subtrahieren:t1 = t1 < 0 ? 0-t1 : t1;
In Anbetracht dessen ist die Standardlösung immer noch günstig, da sie eher sofort klar ist. Mach was du willst, aber behalte das im Hinterkopf.– Superkat
27. August 2015 um 3:28 Uhr