So erhalten Sie einen absoluten Wert von Double – C-Sprache

Lesezeit: 2 Minuten

Benutzeravatar von user3155478
Benutzer3155478

Ich möchte den Absolutwert negativ verdoppeln – und das dachte ich mir abs-Funktion war so einfach zu bedienen wie in Java – aber NICHT!

Es scheint, dass die abs-function gibt ein int zurück, weil ich den Wert 3.8951 habe und die Ausgabe 3.000000 ist

double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);

Wie kann ich dieses Problem beheben? Das heißt – ich möchte den absoluten Wert von a double.

  • Hast du versucht fabs(-3.8951)? man abs sagt “den Absolutwert einer ganzen Zahl berechnen” und fabs(3) wird in “SIEHE AUCH” querverwiesen. Gehen Sie niemals davon aus, dass die Dinge in verschiedenen Sprachen gleich funktionieren. Zumal Java Klassen hat und Methoden überladen kann, C aber nicht.

    – Schleicher

    6. Januar 2014 um 18:07 Uhr


  • @mbratch – danke!!!!!!!!!!!!!! Ich werde dies in Zukunft berücksichtigen

    – Benutzer3155478

    6. Januar 2014 um 18:10 Uhr

  • abs ist nur für Integer in C implementiert. Aus diesem Grund empfehlen alle Antworten die Verwendung von fabs, was das Gleitkommaäquivalent ist.

    – outis nihil

    6. Januar 2014 um 18:11 Uhr

  • “Absolutwert von einem negativen Double” ist einfach: -x. 😉

    – chux – Wiedereinsetzung von Monica

    9. Februar 2021 um 17:33 Uhr

Benutzeravatar von herohuyongtao
herohuyongtao

Verwenden fabs() (in math.h), um einen absoluten Wert zu erhalten double:

double d1 = fabs(-3.8951);

  • Da Sie etwas schneller als Hacks waren, haben Sie gewonnen.

    – Benutzer3155478

    6. Januar 2014 um 18:26 Uhr


  • fabs() ist für Doubles. fabsf() ist für Gleitkommazahlen.

    – Pummeluff

    7. September 2016 um 4:36 Uhr

  • Beide verdienen meine Liebe gleichermaßen.

    – Schlau

    22. November 2017 um 12:16 Uhr

Benutzeravatar von hackks
hackt

Verwenden fabs Anstatt von abs um den absoluten Wert von zu finden double (oder float) Datentypen. Umfassen die <math.h> Überschrift für fabs Funktion.

double d1 = fabs(-3.8951);

Es ist erwähnenswert, dass Java eine Methode wie überladen kann abs damit es mit einer Ganzzahl oder einem Double funktioniert. In C gibt es keine Überladung, daher benötigen Sie unterschiedliche Funktionen für Integer und Double.

  • “In C gibt es kein Überladen” –> Stimme teilweise nicht zu, Forschung <tgmath.h> benutzen fabs() mit verschiedenen FP-Typen. Ähnliche Wirkung möglich.

    – chux – Wiedereinsetzung von Monica

    9. Februar 2021 um 17:19 Uhr

Benutzeravatar von Firas Nomaan
Firas Nomaan

Das habe ich mit gefunden cabs(double), cabsf(float), cabsl(long double), __cabsf(float), __cabs(double), __cabsf(long double) ist die Lösung

  //use fabs()
  double sum_primary_diagonal=0;
  double sum_secondary_diagonal=0;
  double difference = fabs(sum_primary_diagonal - sum_secondary_diagonal);

1414970cookie-checkSo erhalten Sie einen absoluten Wert von Double – C-Sprache

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

Privacy policy