数值修约

將某數取近似值的過程

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

数值修约的历史非常古老,甚至可能比除法还要古老。一些两河流域的泥板有倒数的修约值[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。正数取整后不会小于原数,负数取整后不会大于原数,因此“无条件进位”也称“远离原点方向取整”或“正、负数各自向正、负无穷方向取整”。

有条件简化

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

四舍五入

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

五舍六入

若所取位数的位次后一位小于等于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]. (原始内容存档于2012-08-13).