gpt4 book ai didi

c - 为什么该程序不提供 float 和 double 数据类型的输出?

转载 作者:行者123 更新时间:2023-12-02 07:33:50 25 4
gpt4 key购买 nike

为什么这个程序没有给出 float 和 double 数据类型的输出。但是,同样的代码换成for循环会出现什么结果呢??

      # include <stdio.h>

int main()
{
float x=1.1;
while (x==1.1)
{
printf("%f\n",x);
x=x-0.1;
}
return 0;
}

最佳答案

   float x=1.1;                    
while (x==1.1)

float 和 double 变量不能存储 1.1 的精确值,只能存储非常接近的近似值。由于精度不同,float 和 double 中的确切值会略有不同。

1.1 是一个 double 值。您将 1.1 作为 double 存储到 float 中,这将稍微改变值。然后将它与 double 值 1.1 进行比较,因此它不会完全相等,因此永远不会进入您的条件。

为此,您需要编写 1.1f 以确保您在所有地方都使用相同的数据类型。此外,我相信其他人会解释为什么比较浮点值以获得完全相等通常不是一个好主意。

关于c - 为什么该程序不提供 float 和 double 数据类型的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com