浮点数舍入相比向整数舍入,就复杂一些,IEEE定义了四种不同的舍入方式,默认的为向偶数舍入(round-to-even)。其他三个分别是向零舍入,向上舍入和向下舍入。
其他三个比较直观,就不再说明,以十进制为例说明“向偶数舍入”,平常的四舍五入中,以舍入到小数点后两位为例,如果第3位小数小于5,则舍去,大于等于5的则进1。向偶数舍入除了最中间的这个值(第3位小数为5)以外,其他与平常的舍入相同,中间的这个值,则要保证在舍入的时候舍入位必须为偶数。比如1.40, 1.60, 1.50, 2.50, -1.50向偶数舍入的结果分别为1, 2, 2, 2, -2
至于为什么要想偶数舍入,这是CSAPP(2e)中的原文:
- The problem with such a convention is that one can easily imagine scenarios
- in which rounding a set of data values would then introduce a statistical bias
- into the computation of an average of the values. The average of a set of numbers
- that we rounded by this means would be slightly higher than the average of
- the numbers themselves. Conversely, if we always rounded numbers halfway
- between downward, the average of a set of rounded numbers would be
- slightly lower than the average of the numbers themselves. Rounding toward
- even numbers avoids this statistical bias in most real-life situations.
- It will round upward about 50% of the time and round downward about 50% of the time.
也就是如果在一组数据中,向偶数舍入一般既有向上舍入也有向下舍入,可以一定程度上消除统计平均数时由于总是向上舍入时所带来的统计偏差。
扩展成二进制,就是对形如 XX···X.YY···Y100···二进制模式位的数(最右边的Y是要舍入的位置),根据舍入位是否为偶数来选择是向上舍入还是向下舍入。(至于为什么是100,我还没想明白)
比如10.010, 10.011, 10.110, 11.001向偶数舍入(保留小数点后一位)的结果分别为10.0, 10.1, 11.0, 11.0。
相关推荐
4. **精度分析**:分析计算过程中可能出现的舍入误差,这对于数值计算和科学计算非常重要。 5. **异常处理**:显示和处理浮点异常,如无穷大、NaN(非数字)和下溢/上溢。 6. **比较功能**:比较两个IEEE 754...
**四舍六入五成双算法**,也称为**银行家算法**,是金融行业中广泛采用的一种精确舍入策略,其核心原则是确保舍入过程的统计平衡性,避免因频繁向一个方向舍入而导致的系统误差。这种算法在处理财务和科学计算时尤其...
标题中的“IEEE浮点数转换工具”是指一个软件应用程序,其主要功能是将各种数据类型转换成符合IEEE 754标准的浮点数表示。 IEEE 754是计算机科学中广泛采用的一个标准,定义了如何用二进制表示浮点数,包括单精度...
IEEE754还定义了四种不同的四舍五入模式: - **向最近的偶数舍入**(Round to Nearest, Ties to Even):这是默认的四舍五入方式,即如果数字正好在两个可能的值中间,则选择最接近的偶数。 - **向正无穷方向舍入**...
同时,IEEE 浮点数也存在一些缺点,如精度问题、舍入问题和溢出问题等。 IBM 浮点数是 IBM 公司开发的一种浮点数表示方法,主要应用于 IBM 的计算机系统中。IBM 浮点数的存储格式与 IEEE 浮点数的存储格式相似,...
二进制浮点数舍入问题解决
计组ieee754
4. **舍入**:根据IEEE754标准,乘法结果可能需要进行舍入。有多种舍入策略,如向最接近的数、向零、向上或向下。 5. **异常处理**:检查结果是否导致非规范化数、零、无穷大或NaN(非数字)。这些情况需要特殊处理...
IEEE754 浮点数计算器 。。。。。。。。。。。。。。。。。。。。。。。
IEEE754标准是计算机科学领域中用于表示浮点数的一种广泛采用的国际标准,由电气和电子工程师协会(IEEE)制定。这个标准为单精度和双精度浮点数提供了统一的编码方式,使得不同计算机系统之间能够准确无误地交换...
该标准定义了浮点数的二进制表示、运算规则、异常处理以及舍入控制等,其目的是为了提高计算机中浮点数运算的可移植性、可靠性和正确性。 IEEE 754标准定义了浮点数的几个关键组成部分,包括符号位、指数位和尾数位...
由于40位VC33格式无法完全容纳所有64位的信息,因此必须进行舍入操作,可能会影响数值精度。同时,指数和尾数的转换规则与单精度到VC33的转换类似,但需要更多的位移和截断操作。 转换过程中,需要注意以下几点: 1...
在计算机科学领域,IEEE 754 是一种标准,用于定义浮点数的表示方法,广泛应用于各种计算设备,包括CPU、GPU等。这个标准确保了不同系统间浮点数的兼容性和一致性。32位浮点数是IEEE 754标准中的一种,它使用32个二...
自己用Qt5.4.1的Qt Creator开发的IEEE754浮点数与十六进制数转换器,可以供Qt初学者学习槽函数的用法,也可以学习IEEE754浮点数与十六进制数转换的算法。两个文本框关联,实时将浮点数与十六进制数互相转换,代码...
"IEEE浮点数计算机内二进制表示显示.vi" 这个标题提到了一个关于IEEE浮点数表示的虚拟仪器(VI)程序。VI是LabVIEW(Laboratory Virtual Instrument Engineering Workbench)中的一个组件,用于创建图形化用户界面,...
此外,标准还定义了几种舍入模式,包括向最近的偶数舍入、向零舍入、向上舍入和向下舍入。在LabVIEW中,这些舍入模式可以通过特定的函数进行设置和应用。 **异常处理** 当遇到如除以零、上溢、下溢等异常情况时,...
在C#编程中,有时我们需要对浮点数进行处理,特别是在财务计算或数据展示时,可能需要截取小数部分,而不是使用默认的四舍五入规则。这涉及到数值类型的精度控制和格式化技巧。本篇文章将深入探讨如何在C#中实现这个...
### C# IEEE754浮点数转换技术详解 #### 一、IEEE754标准简介 IEEE 754是国际电气与电子工程师协会(Institute of Electrical and Electronics Engineers, IEEE)制定的一种浮点数表示标准。该标准定义了浮点数在...
标题中的“VC6用浮点数取四舍五入取整好像有Bug”是指在Microsoft Visual C++ 6.0(简称VC6)这个古老的开发环境中,使用浮点数进行四舍五入取整操作时可能存在的问题。这个问题在更新的Visual Studio版本,如VS2005...
DELPHI最完美的四舍五入无BUG函数,是我花费了2天研究出来的成果,完美保留1-4个小数点,包内提供有EXCEL表取值可以把计算结果复制出来做结果对比,我已经随机取了十几万记录做对比,居然无一值和EXCEL的函数保留有...