相关疑难解决方法(0)

与float和float文字相比较的奇怪输出

float f = 0.7;
if( f == 0.7 )
    printf("equal");
else
    printf("not equal");
Run Code Online (Sandbox Code Playgroud)

为什么输出not equal

为什么会这样?

c c++ floating-point double-precision

34
推荐指数
3
解决办法
6725
查看次数

c中浮点的精确表示

void main()
{
    float a = 0.7;

    if (a < 0.7)
        printf("c");
    else
        printf("c++");
} 
Run Code Online (Sandbox Code Playgroud)

在上面的0.7问题中,将打印"c",但是对于0.8,将打印"c ++".为什么?

那么浮点数是如何用二进制形式表示的?

在某些地方,提到内部0.7将存储为0.699997,但0.8存储为0.8000011.为什么这样?

c floating-point

5
推荐指数
2
解决办法
4554
查看次数

标签 统计

c ×2

floating-point ×2

c++ ×1

double-precision ×1