关于将为什么printf("%.3f",0.0045);输出结果是0.004 ,而不是0.005的解释。


对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是“四舍六入五成双”,也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,六是指≥6时进上,五指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进;

如下代码举例:

#include <stdio.h>

int main()
{
  printf("%.3f\n", 0.0045);
  //输出的0.0045为0.004;
  printf("%.3f\n", 0.0046);
  //输出的0.0046为0.005;
  printf("%.3f\n", 0.0035);
  //输出的0.0035为0.004;

  return 0;
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM