我曾经用#define来替换const,但在下面的例子中会打印false。
#include <iostream>
#define x 3e+38
using namespace std;
int main() {
float p = x;
if (p==x)
cout<<"true"<<endl;
else
cout<<"false"<<endl;
return 0;
}
但是如果我替换
#define x 3e+38
使用
const float x = 3e+38;
它完美地运作了,问题是为什么?(我知道有关于#define与const的几个话题进行了讨论,但我真的不明白,请求您给予启示)
#define x 3e+38f
。 - πάντα ῥεῖdouble->float->double
上。使用double
变量或float
字面值都可以解决它。 - MSalters