round函式(资料库中的round())
Round函式返回一个数值,该数值是按照指定的小数位数进行四捨五入运算的结果。可是当保留位跟着的即使是5,有可能进位,也有可能捨去,机会各50%。这样就会造成在应用程式中计算有误。
参数规範
语法
round(number,digits)
参数
number,要四捨五入的数,digits是要小数点后保留的位数
如果 digits 大于 0,则四捨五入到指定的小数位。
如果 digits 等于 0,则四捨五入到最接近的整数。
如果 digits 小于 0,则在小数点左侧进行四捨五入。
如果 digits 等于 0,则四捨五入到最接近的整数。
如果 digits 小于 0,则在小数点左侧进行四捨五入。
如果round函式只有参数number,等同于digits 等于 0。
返回值
四捨五入后的值
举例
round(3.1415926,2)=3.14;
round(3.1415926,3)=3.142;
select round(193,-2)from dual; 200
select round(193,-1)from dual;190
select round(193,-3)from dual;0
出错处理
Round函式返回一个数值,该数值是按照指定的小数位数进行四捨五入运算的结果。可是当保留位跟着的即使是5,有可能进位,也有可能捨去,机会各50%。这样就会造成在应用程式中计算有误。下面这个函式能真正实现四捨五入功能,用以取代Round函式。
PublicFunctionRoundToLarger(dblInputAsDouble,intDecimalsAsInteger)AsDouble
'执行Round()函式,有可能进位
'也有可能捨去
'执行Round()函式,有可能进位
'也有可能捨去
DimstrFormatStringAsString'格式化字元串
'如果是“0”,则返回“0”,否则进行适当的格式化:
IfdblInput<>0Then
strFormatString="#."&String(intDecimals,"#")
RoundToLarger=Format(dblInput,strFormatString)
Else
RoundToLarger=0
EndIf
EndFunction
IfdblInput<>0Then
strFormatString="#."&String(intDecimals,"#")
RoundToLarger=Format(dblInput,strFormatString)
Else
RoundToLarger=0
EndIf
EndFunction
转载请注明出处海之美文 » round函式(资料库中的round())