#每日一题: 浮点型数据的四舍五入格式化输出之谜#
1. Question & Analysis
1. Question: 最近在牛客网上刷题练手,遇到这样一道题:依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号
计算机中浮点的表示及运算普遍采用IEEE 754标准,而IEEE浮点格式中定义了四种舍入方式。其中向偶数舍入(roune-to-even),也被称为向最接近的值舍入(round-to-nearest),是默认的方式
当出现这样一种情景时,如80.555距离80.55和80.56是相等的,向偶数舍入,即80.56
同理,90.845距离90.84和90.85是相等的,向偶数舍入,即90.84
有什么理由偏向取偶数呢?而不是在中间值的情景向上或向下舍入呢?
很容易假想到这样的情景:若采用向上或向下舍入的方法舍入一组数值,会在计算这些值的平均数中引入统计偏差——舍入后的数字计算出的平均值会比这些数本身的平均值略高或略低一些。而向偶数舍入在大多数现实情况中避免了这种统计偏差