永发信息网

C++输入67.98,为什么输出67.98003?浮点数输出默认6位可以理解,那个3怎么回事

答案:1  悬赏:70  手机版
解决时间 2021-02-14 18:04
  • 提问者网友:最爱你的唇
  • 2021-02-13 18:54
C++输入67.98,为什么输出67.98003?浮点数输出默认6位可以理解,那个3怎么回事
最佳答案
  • 五星知识达人网友:一袍清酒付
  • 2021-02-13 19:10
float浮点数的有效数位是6位,多余的数位数据是不确定的,你换成double就不会看到6位以后的3了,但,double精度也只有15-16位,超过这个限制也会显示出错误情况。追问对啊,67.980003小数部分就是6位啊,没有超出6位,为什么最后一位是3追答精度是指所有的数,不是指小数位数!追问那应该是默认输出67.9800啊,默认输出6位,为什么这里输出了8位追答printf输出浮点数时,默认的是输出小数点后6位!而不是整个数据的长度!追问呵呵,既然这样还如上问题对啊,67.980003小数部分就是6位啊,没有超出6位,为什么最后一位是3。追答你把有效位数和输出默认小数位数混了!!!!!!追问您说printf输出浮点数时,默认的是输出小数点后6位!而不是整个数据的长度!那67.980003小数点后面正好是6位所以不应该是3,您看追答float的有效数据只有6-7位,你若输出的数据总长度超过6位,就会出现误差数据!!
请慢慢理解!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯