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

int main(){
    int n = 2;
    int z = 2*pow(10,n);
    int y = pow(10,n);
    printf("%d %d" , z , y);

    return 0;
}

Output is : 199 99

When I use 2 instead of n like int z = 2*pow(10,2) int y = pow(10,2).

Output is 200 100   

I know how to eliminate this problem.

It gets eliminated if instead of integer z and y are float.

I want to know how really C does casting integer to float and other conversions?

Why does using 2 instead of n eliminate the problem?

Update

This Question What is happening here in pow function? Talks About This Thing and has some pretty good answers.

jwpfox
  • 5,124
  • 11
  • 45
  • 42
Suraj Jain
  • 4,463
  • 28
  • 39

0 Answers0