霹雳大王 2022-10-22 01:23 采纳率: 68%
浏览 21
已结题

求解答为什么算出来是10.0不是9.0?

img


求解答为什么算出来是10.0而不是9.0呢?这里是四舍五入了吗?

  • 写回答

1条回答 默认 最新

  • (x,y). C/C++领域新星创作者 2022-10-22 01:26
    关注

    单精度浮点数(float)与双精度浮点数(double)的区别:

    (1)在内存中占有的字节数不同

    单精度浮点数在机内占4个字节

    双精度浮点数在机内占8个字节

    (2)有效数字位数不同

    单精度浮点数有效数字8位

    双精度浮点数有效数字16位

    (3)所能表示数的范围不同

    单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38

    双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

    小数位数多出有效位的情况下就发生进位了。

    值得注意的是,

    %f和%lf都是默认输出6位小数,并不代表double类型的精度只有6位小数 如果需要多输出,强制指定就可以了。

    例如 printf(".15lf\n",a); 就可以输出15位小数了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    (x,y). 2022-10-22 01:26

    所以10/3.0*3等于10.0

    回复
    (x,y). 2022-10-22 01:29

    img

    回复
    霹雳大王 回复 (x,y). 2022-10-22 01:47

    还是没懂为什么是10.0呀,计算过程是什么呢?

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月25日
  • 创建了问题 10月22日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部