qq_27966627
零碎梦颜
采纳率100%
2016-06-19 03:13

double和float精确度问题

已采纳

我控制台输出(10000.0/3.0)结果为3333.333333333335共18个字符但是double精度是15位啊,我将它转化为float结果为3333.3333但是float的精度是6-7位为什么会这样,新手求解

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • ZSGG_ACM ZSGG_ACM 5年前

    精度没问题,是你的输出函数默认以几位输出。比如printf函数。你可以给定精度输出的。比如printf("%.6f")就是输出小数点后6位,希望对你有帮助,希望采纳(⊙o⊙)哦

    点赞 2 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 5年前

    double的精度和输出的10进制方式的精度没有任何关系。这里说的double float的精度是指它的有效精度。以你的程序为例,它输出
    3333.333333333335,很明显最后一位5已经不是有效数字了,它的有效数字是15位,和你的结论是一样的。

    点赞 评论 复制链接分享

相关推荐