数值修约

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻

数值修约,是指在进行具体的数字运算前,按照一定的规则确定一致的位数,然后舍去某些数字后面多余的尾数的过程。

数值修约的历史非常古老,甚至可能比除法还要古老。一些美索不达米亚的泥板上有倒数的修约值[1]圆周率、年月长度的近似值也很古老。现在被广泛使用的数值修约规则,主要有四舍五入五舍六入四舍六入五留双规则。此外还有无条件舍去无条件进位等方法。

舍去与进位

舍去:将所取位数右方的所有数字以0代换。

进位:将所取位数右方的所有数字以0代换后,再将所取位数增加1。

无条件修约

无条件修约分为下取整、上取整、截尾取整(无条件舍去)、无条件进位,分述如下:

下取整(floor(x),接近于负无穷)

参见:取整函数
  • 下取整(又称floor(x)函数,向负无穷方向取整):设原数为x,取整后的y是小于等于x的整数。其定义为:

若所取位数之右有非0的数字,当原数为正数时舍去,当原数为负数时进位。例如:23.7向下取整为23,−23.2向下取整为−24。取整后的数总是小于等于原数,因此“下取整”也称“向负无穷方向取整”。

上取整(ceil(x),接近于正无穷)

参见:取整函数
  • 上取整(又称ceil(x)函数,向正无穷方向取整):设原数为x,取整后的y是大于等于x的整数。其定义为:

若所取位数之右有非0的数字,当原数为正数时进位,当原数为负数时舍去。例如:23.2向上取整为24,−23.7向上取整为−23。取整后的数总是大于等于原数,因此“上取整”也称“向正无穷方向取整”。

截尾取整(truncate(x),无条件舍去,接近于原点)

参见:截尾函数
  • 截尾取整(又称truncate(x)函数,向原点方向取整):设原数为x,取整后的y是0与x之间(含x)最接近x的整数。若原数值为正数,则下取整;若原数值为负数,则上取整(也相当于对原数绝对值下取整,然后再加上负号)。其定义为:

若所取位数之右有非0的数字,则一律无条件舍去。例如:23.7截尾后为23,−23.7截尾后为−23。正数取整后总是小于等于原数,负数取整后的数总是大于等于原数,因此“截尾取整”也称“向原点方向取整”。

无条件进位(远离于原点,接近于正或负无穷)

  • 无条件进位(远离于原点,正、负数各自向正、负无穷方向取整):设原数为x,取整后的y是0与y(含y)之间最接近x的整数(也可定义为0与y(含y)之间最接近0的整数,两者等价)。若原数值为正数,则上取整;若原数值为负数,则下取整(也相当于对原数绝对值上取整,最后再加上负号)。其定义为:

若所取位数之右有非0的数字,则一律无条件进位。例如:23.2取整后为24,−23.2取整后为−24。正数取整后总是大于等于原数,负数取整后总是小于等于原数,因此“无条件进位”也称“远离原点方向取整”或“正、负数各自向正、负无穷方向取整”。

有条件修约

有条件修约通常以所取位数的次后一位数字的大小决定该舍去或是进位,当其小于一数字时则舍去;反之,若大于等于该数字时则进位。常用的有条件修约如四舍五入、五舍六入与四舍六入五留双等,分述如下:

五舍六入

若所取位数的位次后一位小于等于5,则舍去;反之,若大于等于6,则进位。若原数值为负数,则先以绝对值求得结果后再加负号。

五舍六入常用于商店的折扣后的价格的修约。

四舍六入

四舍六入五留双规则,也称为银行进位法或银行家舍入或奇进偶舍。奇进偶舍,是一种数值修约规则。从统计学的角度,“奇进偶舍”比“四舍五入”更为精确。

视所取位数之次后一位数字为下列情况决定舍去或进位: 其具体要求举例如下(以保留两位小数为例):

  1. 要求保留位数的后一位如果是4,则舍去。例如5.214保留两位小数为5.21。
  2. 要求保留位数的后一位如果是6,则进位。例如5.216保留两位小数为5.22。
  3. 要求保留位数的后一位如果是5,而且5后面不再有数,要根据应看尾数“5”的前一位决定是舍去还是进入: 如果是奇数则进入,如果是偶数则舍去。例如5.215保留两位小数为5.22; 5.225保留两位小数为5.22。
  4. 要求保留位数的后一位如果是5,而且5后面仍有数。例如5.2254保留两位小数为5.23,也就是说如果5后面还有数据,则无论奇偶都要进入。

按照四舍六入五留双规则进行数字修约时,也应像四舍五入规则那样,一次性修约到指定的位数,不可以进行数次修约,否则得到的结果也有可能是错误的。

使用方法

多步计算

一般情况下,在计算时,不对中间的每一步骤的计算结果进行修约,仅对最后的结果进行修约。这样可以使最终结果尽可能符合所确定的位数要求。

例如:计算4.5862×1.85969212+3×4.10536并将结果保留3位有效数字。

4.5862×1.85969212+3×4.10536
=8.528920000744+12.31608
=20.845000000744 (此步修约)
=20.8
(正确结果)
4.5862×1.85969212+3×4.10536
=8.53+12.32(此步第一次修约)
=20.85 (此步第二次修约)
=20.9
(错误结果,扩大误差)

单步加、乘法

对于一步加法乘法,也有一定的修约规则。

加法:在运算前,将所有的加数都修约到各加数中最高的尾数位。然后相加,运算后不修约。

例如:计算3.14159+97.182+0.316228。

3.14159+97.182+0.316228
=3.142+97.182+0.316 (此步修约)
=100.640 (尾数的0不可省略)

乘法:在运算前,将所有的乘数都修约到各乘数中最少的有效数字位数。然后相乘,运算后将乘积修约到相同的有效数字位数。但如果有乘数为准确数或1位有效数字,可不参与修约。

例如:计算100.57234×3×6.190×0.31945。

100.57234×3×6.190×0.31945
=100.6×3×6.190×0.3194 (3不参与修约;0.31945 的修约用“五留双”规则)
=596.6845548 (此步修约)
=596.7

应用

参见

参考文献

  1. Duncan J. Melville. "YBC 7289 clay tablet". 2006 [2014-02-18].