30 Sep
2004
30 Sep
'04
22:43
Hi Volker! volker wirth schrieb am 01.10.2004 00:14 :
float z = (1 / 2); printf("%f", z);
und er sagt mir: 0.000000
Bei anderen Zahlen ist es genauso. Das hat mich doch _etwas_ überrascht.
In welchen Sprachen hast du bis jetzt programmiert? Das ist in allen sprachen, die ich näher kenne, genauso.
Danke für die Hilfe, habe wahrscheinlich ein ziemlich großes Brett vorm Kopf,
Das Literal '1' bezeichnet die Integerzahl 1, '2' ist die Integer 2. Also berechnest du einen ganzzahligen Bruch, der 0 ergibt. Der Compiler castet dir freundlicherweise diese Integer-Null dann noch zu einer float-Null und gibt sie dir aus. Du wolltest wahrscheinlich dies hier machen: float z = (1f / 2f); printf("%f", z); Gruß, Michael