在C中,如果我們執行以下代碼:浮點值的比較失敗
float a = 0.7;
if (a < 0.7)
{
printf("Less");
}
else
{
printf("no");
}
上述代碼打印「少」的代碼。
但是,如果我們執行以下代碼:
float a = 1.7;
if (a < 1.7)
{
printf("Less");
}
else
{
printf("no");
}
它打印出 「無」。
這是什麼原因? float數據類型是如何工作的?
你可能想查找「浮點舍入錯誤」 - 有關這些問題的巨大文章:-) –
必須閱讀 - http:// docs。 oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –
[正如你在這裏可以看到的](https://ideone.com/e8N7pn),它也可以用C++ 11打印。至於爲什麼,請參閱Luchian的鏈接。 – Borgleader