博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浮点数向偶数舍入的问题 Round-to-Even for Floating Point
阅读量:6378 次
发布时间:2019-06-23

本文共 785 字,大约阅读时间需要 2 分钟。

Round-To-Even在于To-Up , To-Down, To-towards-Zero对比中,在一定数据量基础上,更加精准。To-Up的平均值比真实数值偏大,To-Down偏小。
 
例如有效数字超出规定数位的多余数字是1001,它大于超出规定最低位的一半(即0.5),故最低位进1。
如果多余数字是0111,它小于最低位的一半,则舍掉多余数字(截断尾数、截尾)即可。
对于多余数字是1000、正好是最低位一半的特殊情况,最低位为0则舍掉多余位,最低位为1则进位1、使得最低位仍为0(偶数)。 

注意这里说明的数位都是指二进制数。 

举例:要求保留小数点后3位。 

对于1.0011001,舍入处理后为1.010(去掉多余的4位,加0.001) 
对于1.0010111,舍入处理后为1.001(去掉多余的4位) 
对于1.0011000,舍入处理后为1.010(去掉多余的4位,加0.001,使得最低位为0) 

对于1.1001001,舍入处理后为1.101(去掉多余的4位,加0.001) 
对于1.1000111,舍入处理后为1.100(去掉多余的4位) 
对于1.1001000,舍入处理后为1.100(去掉多余的4位,不加,因为最低位已经为0) 

对于1.01011,舍入处理后为1.011(去掉多余的2位,加0.001) 
对于1.01001,舍入处理后为1.010(去掉多余的2位) 
对于1.01010,舍入处理后为1.010(去掉多余的2位,不加) 

对于1.01111,舍入处理后为1.100(去掉多余的2位,加0.001) 
对于1.01101,舍入处理后为1.011(去掉多余的2位) 
对于1.01110,舍入处理后为1.100(去掉多余的2位,加0.001)

转载于:https://www.cnblogs.com/jokerjason/p/9187686.html

你可能感兴趣的文章
Django进阶之缓存和信号
查看>>
DataGridView 设定单元格只读:
查看>>
缺陷跟踪工具jira和团队协作与项目管理工具conflunce
查看>>
shell特性及变量设置
查看>>
RHEL6入门系列之十五,管理用户和组
查看>>
特斯拉悄悄搞出无人车AI芯片,已经投产测试,而且没带英伟达
查看>>
LVS、Nginx和HAProxy负载均衡器对比总结
查看>>
Samsung_tiny4412(驱动笔记01)----linux 3.5,U-Boot,Busybox,SD卡启动环境搭建
查看>>
爬虫攻略(一)
查看>>
正则表达式语法
查看>>
修改Android系统字号(一)
查看>>
零元学Expression Blend 4 - Chapter 45 ListBox里的物件不能换行吗?
查看>>
Elasticsearch上手——几个基本概念
查看>>
深入探索AngularJS(持续更新)
查看>>
程序员的10大成功面试技巧
查看>>
Java cxf WebService 入门[sayHello]
查看>>
一个线程的独白
查看>>
elasticsearch threadpool setting
查看>>
http协议content-encoding & transfer-encoding
查看>>
二叉树——BinaryTree 非递归遍历算法(Java)
查看>>