wie man aus negativen zahlen positive macht

Lesezeit: 2 Minuten

Benutzeravatar von Monish Kumar
Monisch Kumar

Ich habe die negative Gleitkommazahl als:

a = -0.340515;

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


Benutzeravatar von Jason Coco
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

Benutzeravatar von Gaurav
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

Benutzeravatar von Neurotrin
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

Benutzeravatar von Dharman
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; 
}

1409800cookie-checkwie man aus negativen zahlen positive macht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy