问答详情
源自:2-8 自动类型转换

为什么double和float所输出的数位数一样么

不是说double是双精度,精确位数有十六位啊,怎么也是输出八位

还有这个又是为啥

http://img1.mukewang.com/5dbd4b400001925805600175.jpg结果是这个,说好的16位呢。

http://img4.mukewang.com/5dbd4b8d0001b07a05940100.jpg

提问者:qq_慕粉8539133 2019-11-02 17:26

个回答

  • qq_慕粉8539133
    2019-11-02 17:31:53

    找到了,百度上的

    double与float的区别在于在内存中存放数据时占用的内存不一样,前者8字节,后者4字节,也就是前者保存的小数位数比后者多一倍。举例说明对于1.9999996666,按照float输出,结果可能为1.999999,如果按照double可能为1.999999,这是为什么,因为C语言默认输出小数位数都取6位,这时候看起来没有区别,但是如果你进行格式控制,比如使用%.10,即小数保留10位,float输出结果为1.9999990000,而double输出结果则为1.9999996666。