Anfängerfrage

U

Unixx

Aktives Mitglied
Thread Starter
Dabei seit
25.08.2004
Beiträge
554
Reaktionspunkte
19
Hallo,
ich habe eine kleine Cocoa Anwendung geschrieben.
In meinem Programmfenster befindet sich ein TextField und ein Button.
Nun soll das Programm, sobald man den Button drückt, den Wert aus dem TextField auslesen und 10 dazu addieren.

Gebe ich in das Textfield 3 ein kommt auch 13 raus und bei 3,5 13,5 - soweit so gut. Gebe ich nun aber 3,6 ein bekomme ich als Ergebnis 13,60000038146973 oder bei der Eingabe von 4,4 bekomme ich 14,39999618.
Woran kann das liegen?


- (IBAction)klickMich:(id)sender
{
float a;
a = 0;
a = [x1 floatValue];
a = a +10;
[textField setFloatValue:a];
}

@end
 
Zuletzt bearbeitet:
Yo, chicos!
Unixx schrieb:
Gebe ich in das Textfield 3 ein kommt auch 13 raus und bei 3,5 13,5 - soweit so gut. Gebe ich nun aber 3,6 ein bekomme ich als Ergebnis 13,60000038146973 oder bei der Eingabe von 4,4 bekomme ich 14,39999618.
Woran kann das liegen?
Ich würde mal vermuten, daß das am Unterschied zwischen Binär- und Dezimalsystem liegt.
Eine einfache Dezimalzahl wie 0,1 hat im Binärsystem unendlich viele Nachkommastellen. So wie 1/3 im Dezimalsystem zum Beispiel.

Nimm statt float mal double oder schicke eine Rundungsfunktion drüber.

Sophokles
 
Danke, jetzt wo ich double anstatt von float verwende funktioniert es.
 
doppelte genauigkeit :)
 
Zurück
Oben Unten