私はそれがどちらに行くのか理解できません。浮動小数点の問題全体のために、それを int にキャストする方が理にかなっているように思えますが、私が言ったように、よくわかりません。誰か知っていますか?
質問する
1362 次
2 に答える
6
このコードを試してください:
#include <stdio.h>
int main(void)
{
if (100.1 == 100)
printf("Must be integer compare\n");
else
printf("Must be floating point compare\n");
return 0;
}
また、 や なども考えてみてint i = 10; float j = 100.5 + i;
ください100.2 == 100
。整数でそれをしたくありません!
于 2012-07-10T19:58:29.730 に答える
5
「通常の算術変換」の下の6.3.1.8にリストされています。
それ以外の場合、いずれかのオペランドの対応する実数型が double の場合、もう一方のオペランドは、型 domain を変更せずに、対応する実数型が double である型に変換されます。
そして 6.5.9 はそれを次のように綴ります==
:
両方のオペランドが算術型の場合、通常の算術変換が実行されます。
編集
私はC11 N1570を引用しています。
于 2012-07-10T19:58:04.713 に答える