Roni Castro Roni Castro - 1 year ago 81
C Question

Calculate the value of e^x

enter image description here

I need to calculate the value of e^x. The loop is infinity and should stop when i get the precision 0.001, but i do not know how to get this precision.

float exp(float x){
float ex=1,precision=0.000,powX=1.0,fat=1.0;
int partInt;
int i,j;
for(i=1; precision!= 0.001; i++){
for(j=1; j<=i; j++){
powX *= x;
fat *=j;
ex += powX/fat;
partInt = ex; // like a cast to integer
precision= ex - partInt; // get the precision
//printf("%f %f %f %f\n",powX,fat,precision,ex);
powX = fat = 1.0;
return ex;

int main(){
return 0;

Answer Source

You could use a double prev to keep track of the result produced by the previous iteration. Stop when abs(prev - ex) < precision.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download