我了解 int、float 和 double 数据类型之间的区别。但我观察到,有时当我在仅包含整数值的数学运算中使用“int”数据类型时,它给出的结果比正确答案少一。但是,当我使用 float 或 double 时,它是正确的。
看看下面的代码。
#include <iostream>
#include<math.h>
using namespace std;
int getno(int num)
{
int x,i;
float y=0;
for(i=0; i<4; i++)
{
x=num%10;
y=y+(x*pow(10,i));
num=num/10;
cout<<x*pow(10,i)<<endl;
cout<<y<<endl;
}
return y;
}
main()
{
int n;
cin>>n;
cout<<getno(n);
}
如果我将 y 的数据类型更改为 int,它会给出一个错误的答案。即 12345 将导致 2344 而不是所需的 2345。为什么会发生这种情况?