Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: c rechnet Potenz falsch
AUTOR BEITRAG
Earth

RANG Deckschrubber

#1 - 12.12 23:05

Hi Leute,

habe folgendes Programm in C geschrieben:

------------------------------------------

#include <stdio.h>
#include <math.h>

int main(){

long int i,zahl;

for(i=0;i<5;i++){

zahl = pow(10,i);
printf("%d\n",zahl);

}

}

------------------------------------------

Wenn ich es ausführe bekomm ich am Bildschirm folgendes zu lesen:

1
10
99
1000
9999

Warum rechnet mir das Programm die Potenz 10^2 und 10^4 nicht korretk aus?!?
Crush (Anti Däääh)

RANG Master of Clanintern

#2 - 12.12 23:34

pow() arbeitet mit Fliesskommazahlen. Wenn du Integer verwendest, entstehen Rundungsdifferenzen. Davor hätte dein Compiler dich eigendlich warnen müssen (GCC sagt: "9: warning: converting to `int' from `double'")
code:

#include <stdio.h>
#include <math.h>

int main(){
    double i,zahl;

    for(i=1;i<5;i++)
    {
        zahl = pow(10,i);
        printf("%f\n",zahl);
    }
}
Output:
code:
10.000000
100.000000
1000.000000
10000.000000

Wenn du keine Nachkommastellen willst, dann tausch die Ausgabezeile aus durch printf("%d\n",(int)zahl);