冥顽 发表于 2016-1-9 21:12:17

帮忙看下为什么输出不正确

本帖最后由 冥顽 于 2016-1-9 22:01 编辑

#include "stdio.h"
#include "math.h"

int main()
{
                               
        printf("%2.0f\n",pow(2.0,64.0));                                       
        return 0;
}
为什么输出的是18446744073709552000?不应该是18446744073709551616么?到底哪里出错了?

冥顽 发表于 2016-1-9 21:24:10

{:10_243:}没人搭理?

冥顽 发表于 2016-1-9 21:25:35

{:10_243:}没人搭理?

人造人 发表于 2016-1-9 21:49:40

file:///C:/Users/suhuajun/Desktop/360%E5%8F%8D%E9%A6%88%E6%84%8F%E8%A7%81%E6%88%AA%E5%9B%BE16410117468079.png
编译器问题?

人造人 发表于 2016-1-9 21:50:41

不会发图片,抱歉

冥顽 发表于 2016-1-9 21:54:11

人造人 发表于 2016-1-9 21:50
不会发图片,抱歉

编译器的问题?你用的是vs?

人造人 发表于 2016-1-9 21:55:49

冥顽 发表于 2016-1-9 21:54
编译器的问题?你用的是vs?

冥顽 发表于 2016-1-9 21:58:25

人造人 发表于 2016-1-9 21:55


谢谢了,我用的VC6.0最后几位被四舍五入了。。不知道是什么情况

SXTDU 发表于 2016-1-10 00:09:34

也许和精度有关吧 double精确到15-16位{:5_91:}
页: [1]
查看完整版本: 帮忙看下为什么输出不正确