Vergleich von Gleitkomma-Werten in C/C++/Objective-C

M

mynamenixname

Mitglied
Thread Starter
Dabei seit
05.06.2010
Beiträge
39
Reaktionspunkte
0
Hallo,
ich bin gerade dabei von Java auf Objective-C umzusteigen und bin total am verzweifeln.
Für einen Bisektions-Algorithmus möchte ich eine Gleitkommazahl mit Null vergleichen und feststellen, ob diese größer oder kleiner ist.
Code:
if (doublewerta < doublewertb){...}
Ist laut XCode nicht zulässig und im Netz habe ich nur Beschreibungen gefunden, wie man auf Übereinstimmung prüft.

Gibt es eine einfache Lösung für mein Problem, oder einen anerkannten Algorithmus?

Muss ich eine Kombination aus Multiplizieren, Runden und Vergleichen in Betracht ziehen?

Vielen Dank schon einmal :)
 
  • Gefällt mir
Reaktionen: mynamenixname
ja, so wird es sein :)
 
Momentmal... zwei doubles miteinander zu vergleichen, sollte genau so gehen, wie du im OP geschrieben hast! Das Problem muss also ein anderes sein, das in deinem Codeausschnitt nicht sichtbar ist.
 
  • Gefällt mir
Reaktionen: below
Momentmal... zwei doubles miteinander zu vergleichen, sollte genau so gehen, wie du im OP geschrieben hast! Das Problem muss also ein anderes sein, das in deinem Codeausschnitt nicht sichtbar ist.

+1

und noch ein paar Zeichen
 
Wenn es wirklich nur darum geht zu prüfen, ob die double > 0 ist, dann hat dannycool recht:
Code:
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        double myDouble = random() / M_PI;
        if (myDouble > 0)
            NSLog(@"Larger than life, er, 0");
        else
            NSLog(@"Below zero");
        
    }
    return 0;
}
geht wunderbar.

Wenn es allerdings um Geld geht würde ich Dir unbedingt NSDecimalNumber ans Herz legen. Wenn Du zum Beispiel eine Telefonrechnung mit Einzelbeträgen und USt. zusammenrechnest, dann liefern double Werte etwas GANZ anderes ...

Alex
 
  • Gefällt mir
Reaktionen: pdr2002
Zurück
Oben Unten