首页 > 其他 > 详细

浮点数的舍入

时间:2021-05-21 17:56:00      阅读:21      评论:0      收藏:0      [点我收藏+]

起因

最近本来一直在学《深入理解计算机系统》这本书,但是一直没有养成复习的习惯,而且太浮躁了,不求甚解。以后要脚踏实地的把每个知识点学好,练习什么的都要做。学习遇到问题要赶紧记录解决,写好计划。这些习惯是高中悟出来的,大学要重写捡起来了。

 

浮点数的舍入

因为浮点数的表示精度有限,所以有时候要进行舍入。

 

舍入方式

如果数值不在两者之间就正常舍入。如4.3 舍入到个位为 4,4.7舍入到各位为5.

如果数值刚好在两者之间就按偶数舍入。按偶数舍入的意思是朝着舍入位是偶数的方向舍入。如4.5舍入到个位,可能舍入到4或5,由于4是偶数,所以最后的舍入结果为4。

 

为什么要按偶数舍入

不管怎么舍入都会有误差,而如果要计算数据总体的平均值。总是向上舍入(4.5舍入到5)会让平均值变大,总是向下舍入(3.5舍入到3)会让数据平均值变小。

而按偶数舍入的话在偶数两边的值,如(3.5,4.5)一个变大,一个变小,最后对平均值的影响最小。

 

二进制小数的舍入

十进制比较好舍入的原因是人们一看就知道中值在哪,是大于还是小于中值。而二进制的话却比较不好看,如1 1 1 0. 0 1 0 0 ,要舍入到小数点最后一位,到底是大于还是小于或是等于中值呢?

有个判断的小技巧,中值本质上是把一个范围划分成数据量相同的两个范围,比如50把100分成两个有50个数的范围,4把8分成两个有4个数的范围。二进制也是这样,例如二进制 1 0 0 的中值 1 0,向下 有 0 0 1一个数,中间是 0 1 0 ,向上是 0 1 1 一个数,再加就进位了。通过这个例子可以看出,二进制要舍入位后的中值就是要舍入位的下一位有效数字位1,其他位为0。 如 1 1 1 0. 0 1 0 0 这个例子,小数点后一位为要舍入数字,下一位为1,其余位为 0,就是中值。

确定了中值,二进制该怎么向偶数舍入呢?二进制的偶数就是要舍入位为0的情况 1 1 1 0. 0 1 0 0最后的舍入结果应为 1 1 1 0.0,如果舍入位一开始是 1,就变为0同时进位。 如 0 . 1 1舍入到小数点后一位, 1 . 0  。

 

浮点数的舍入

原文:https://www.cnblogs.com/hitsz-yc/p/14794627.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!