Funktion rechnet falsch ...
-
Hallo zusammen,
ich habe ein problem mit meiner funktion die sollte mir die nachkommastellen von einer float in eine int schreiben. Leider geht das nur bei 0.5 oder 0.55 usw. bei 0.6 kommt misst herraus in dem fall 59999996 sollte aber 6 sein. Kann mir jemand sagen warum das so ist?int fkt_ns (float input) { input = input - (int) input; while ( input != (int) input ) { input = input * 10; } return (int) input; }
grüße drakesoft
-
Das ist schon richtig so (aus Sicht des Rechners zumindest
) und liegt an der internen Darstellung von Gleitkommazahlen.
http://de.wikipedia.org/wiki/Gleitkommazahl#Einschr.C3.A4nkungen_und_deren_mathematische_Grundlagen