我有以下代码,
float a = 0.7;
if(0.7 > a)
printf("Hi\n");
else
printf("Hello\n"); //Line1
和
float a = 0.98;
if(0.98 > a)
printf("Hi\n");
else
printf("Hello\n"); //Line2
这里 line1 输出Hi
但 Line2 输出Hello
。我假设对于双常数和浮点数会有一定的标准,即它们中的任何一个在评估时都会变得更大。但是这两个代码澄清了当双常数变大而其他时候浮点变大时可能会出现这种情况。这背后有什么四舍五入的问题吗?如果是,请解释一下。我非常需要这个明确的..提前谢谢