![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: jari, 29. 06. 2005, 18:49
ich habe folgenden code:
int i,j,n;
float zahl;
n=4;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
zahl=(1/(i+j-1));
printf("%f\n",zahl);
}
}
mit der formel, die bei zahl=... steht, sollten folgende ergebnisse in Gleitkommadarstellung ausgegeben werden, aber es wird immer 0.000000 ausgegeben!
1
1/2
1/3
1/4
1/5
1/6 usw bis
woran liegt das?
Die folgende Nachricht zum Thema stammt von: MudGuard, 29. 06. 2005, 19:22
Hi,
»» int i,j,n;
»» float zahl;
»» zahl=(1/(i+j-1));
Auf der rechten Seite stehen lauter int-Werte. Die Rechnung wird also in int ausgeführt.
Das Ergebnis, welches außer im ersten Fall immer 0 ist, wird dann für die Zuweisung nach float gewandelt.
Sorge dafür, daß mindestens eine der Variablen rechts schon vorher auf float gecastet wird.
cu,
Andreas
--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
© 1998-2006
Impressum, Software: Classic Forum