C错误中的浮点数

C错误中的浮点数

This question already has answers here:
Is floating point math broken?
                                
                                    (31个答案)
                                
                        
                                2年前关闭。
            
                    
当使用相等运算符使值相等时,输出将显示失败而不是成功。这是编译器版本的问题吗?所附程序的屏幕截图c - C错误中的浮点数-LMLPHP

void main()
        {
            float k = 0.1;
            if (k == 0.1)
                printf("Success");
            else
                printf("Failure");
        }

最佳答案

看这个:

预测以下C程序的输出。

#include<stdio.h>
int main()
{
    float x = 0.1;
    if (x == 0.1)
        printf("IF");
    else if (x == 0.1f)
        printf("ELSE IF");
    else
        printf("ELSE");
}
The output of above program is “ELSE IF” which means the expression “x == 0.1” returns false and expression “x == 0.1f” returns true.


取自here

关于c - C错误中的浮点数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42492602/

10-11 16:31