gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 16:36:42 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 是一个值。您将 1.1 作为 double 存储到 float 中,这会稍微改变该值。然后将其与 double 值 1.1 进行比较,因此它不会完全相等,因此永远不会进入您的条件。

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

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

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