我在學習c,並且感到困惑,因爲我的代碼似乎認爲(1e16-1> = 1e16)應該是false。我的代碼如下,它返回c中的不等式不起作用
9999999999999999 INVALIDBIG\n
當我希望它不會返回任何東西。我認爲使用long long可以避免大數量的問題。
int main(void)
{
long long z;
z = 9999999999999999;
if (z >= 1e16 || z < 0)
{
printf("%lli INVALIDBIG\n",z);
}
}
無法重現。試試'1e16LL'。更新:實際上指數符號返回的是浮點類型,所以你不能附加整數後綴。你最好使用整數常量 –
@EugeneSh。 「浮動」還是「雙」? –
@SouravGhosh浮點數。確切的類型在這裏並不重要,我相信.. –