364904690 发表于 2015-3-23 15:58:56

四则运算结果为什么不一样?


static/image/hrline/2.gif

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

static/image/hrline/1.gif
这个程序在不同的编译系统下运行,为什么在VC6.0和GCC下会得到不同的结果?
在GCC下运行,不同的计算机也得到了不同的结果?


oggplay 发表于 2015-3-23 19:47:50

看编译器警告吧


正确的应该这么改#include <stdio.h>
int main()
{
    printf("%f\n",1.0/3*3);
    printf("%f\n",3.0/2);
    printf("%f\n",1.0/3*3);
}

ANDES 发表于 2015-3-23 19:24:26

我也不懂。。。回复下,赚个积分。为什么要那么闲着蛋疼去研究这种问题。。。有时间还不如多看点别的。

haiouda 发表于 2015-3-23 19:26:11

可以把你的不同结果,晒出来么 :ton:

~风介~ 发表于 2015-3-23 20:34:09

不同编译器在精度上会有些差异,没什么关系啦!:)

364904690 发表于 2015-3-24 08:30:45

楼上的带有行标的代码行,就是1,2,3,……,是怎么上传的?教我下,谢谢!
页: [1]
查看完整版本: 四则运算结果为什么不一样?