Ode*_*ded 11
在数学中,rounding意味着舍入到最接近的整数,因此舍入3.4导致3,舍入3.6导致4.
Truncating另一方面,意味着完全去除小数部分,因此3.4或3.6导致3.
大多数编程语言和库也遵循这一点.
round( )并且trunc( ),在大多数编程语言中,对应于IEEE-754标准规定的四种基本舍入模式中的两种.
四种舍入模式,相应的舍入函数以及它们在各种输入上的行为示例如下:
rounding mode function [1] results of rounding:
0.2 1.7 -2.6 -3.3
---------------------------------------------------------------------------------
round to nearest round( ) [2] 0.0 2.0 -3.0 -3.0
round to zero trunc( ) 0.0 1.0 -2.0 -3.0
round to +infinity ceil( ) 1.0 2.0 -2.0 -3.0
round to -infinity floor( ) 0.0 1.0 -3.0 -4.0
Run Code Online (Sandbox Code Playgroud)
[1] IEEE-754标准不要求这些名称,并且并非所有语言都使用相同的名称.这些仅仅是我经验中最常见的名字.
[2] round( )C和C派生语言中的函数与IEEE-754舍入到最接近的舍入模式并不完全对应.具体来说,它在处理确切的中途案例方面有所不同.C round( )函数围绕"从零开始",这可能是你在小学时学到的,但在某些计算中引入了偏见.IEEE-754舍入到最近模式指定将关系四舍五入到最接近的偶数,这在保持确定性的同时不太可能引入偏差.