星星阳 发表于 2016-7-22 11:06:04

代码

#include<stdio.h>
void main()
{
        printf("%f\n",1.0/3*3);


}这个是在小甲鱼讲的视频中出现的补充,小甲鱼说结果一定不是1,为什么我运行了结果是1呢,求大神指教

轻描淡写’ 发表于 2016-8-3 18:02:22

printf("%1f\n",1.0/3*3);      %1f 试试

星星阳 发表于 2016-8-10 15:50:35

轻描淡写’ 发表于 2016-8-3 18:02
printf("%1f\n",1.0/3*3);      %1f 试试

还是这样的,没有区别

鱼C篮球 发表于 2023-12-6 16:54:37


#include<stdio.h>
void main()
{
      printf("%f\n",1.0/3*3);


}

@FishC_GPT 这段代码的运行结果是多少

FishC_GPT 发表于 2023-12-6 16:54:58

鱼C篮球 发表于 2023-12-06 16:54
#include
void main()
{
      printf("%f\n", ...

这段代码的运行结果是1.000000。

在这段代码中,表达式1.0/3*3的计算顺序是从左到右,按照数学运算的优先级进行计算。首先,1.0除以3得到0.333333,然后再乘以3得到0.999999。由于printf函数使用了%f格式说明符,即输出浮点数,因此会将结果格式化成浮点数并输出。

然而,在编程中,浮点数的精度是有限的,可能存在舍入误差。所以最终结果可能是接近1的0.999999,但不是完全准确的1。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 代码