我正在学习 c,并且很困惑,因为我的代码似乎在应该为假时将 (1e16 - 1 >= 1e16) 评估为真。我的代码在下面,它返回
9999999999999999 INVALIDBIG\n
当我希望它不会返回任何东西时。我认为使用 long long 可以避免任何大数字问题。
int main(void)
{
long long z;
z = 9999999999999999;
if ( z >= 1e16 || z < 0 )
{
printf("%lli INVALIDBIG\n",z);
}
}