vb 中round函数说成是四舍六入也不正确?

作者&投稿:释海 (若有异议请与网页底部的电邮联系)
向VB老鸟求救,round函数~

这个函数不是一个四舍五入的函数,实际上是四舍六入的函数,但是当取舍的数字为中间值(即5)的时候他会向相应的偶数方向取舍;所以3.135离第二位小数3最近的偶数是4,使用此函数后就变成3.14,而3.145第二位小数本身为偶数,所以直接舍掉5也变成3.14

vb中Round函数,是返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。语法 Round(expression [,numdecimalplaces])
expression 必需的。要进行四舍五入运算的数值表达式。 numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。
例子:
Dim a As Doublea = 2.55Print Round(a, 1)返回结果是:2.6a = 3.1415926Print Round(a, 6)返回结果是3.141593

这个函数采用的四舍六入五留双,奇进偶不进。
比如
round(2.15,1)=2.2
round(2.25,1)=2.2
round(2.295,2)=2.30
round(2.395,2)=2.40
round(2.195,2)=5.19 '这个我也不明白,应该是2.20才对啊。

如果round(数字)则返回的值一定遵循"四舍六入五留双,奇进偶不进",多了小数位的参数就有点乱套了...

Round函数
描述

返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

语法

Round(expression [,numdecimalplaces])

描述
expression 必需的。要进行四舍五入运算的数值表达式。
numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。

haoyeeh的说法是对的. 但是不知道为什么这个函数的行为这么奇怪. 还有excel中的ROUND函数是四舍五入的, 但是VBA中的ROUND函数也是四舍六入五奇进的.


驻马店市18685454149: vb中round()函数是什么意思 -
糜于沃森: VB6中文版说Round函数是四舍五入函数,实际上这个函数采用的四舍六入五留双.VB的Round所采用的算法是这样的:1.25留一位,则1.2=round(1.25)如果是1.35,则1.4=round(1.35)奇进偶不进.这样在一大串需要四舍五入的数相加相减...

驻马店市18685454149: vb中那个ROUND函数有什么不同
糜于沃森: vb中Round函数,是返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果.语法 Round(expression [,numdecimalplaces]) expression 必需的.要进行四舍五入运算的数值表达式. numdecimalplaces 可选的.数字值,表示进行四舍五入运算时,小数点右边应保留的位数.如果忽略,则Round函数返回整数.例子:Dim a As Double a = 2.55 Print Round(a, 1) 返回结果是:2.6 a = 3.1415926 Print Round(a, 6) 返回结果是3.141593

驻马店市18685454149: vb中round(0.55)是多少 -
糜于沃森: 是1 VB在对数字进行取舍时采用的是“四舍六入五成双原则”,即(以取整为例): 1、如果小数点后第一位是4或小于4,则小数部分直接舍去,如 Round(0.4)=0; 2、如果小数点后第一位是6或大于6,则小数部分舍去,个位数加1,如 Round(0.6)=1; 3、如果小数点后第一位是5,则要根据个位数的奇偶来定: (1)如果个位数是偶数(包括0),则小数部分直接舍去,如 Round(2.5)=2; (2)如果个位数是奇数,则小数部分舍去,个位数加1,如 Round(1.5)=2; (3)如果小数点后第二位起还有其他数字,那么不管个位数是奇数还是偶数均进位,如 Round(2.501)=3

驻马店市18685454149: VB中的round函数为什么输入12.5返回的是12? -
糜于沃森: round函数有二个参数,第一个是必须的,是要进行四舍五入运算的数值表达式.第二个是可选的,表示进行四舍五入运算时,小数点右边应保留的位数.如果忽略,则Round函数返回整数. 这个函数是四舍六入五成双,是一种精确度的计数保留法.这里"四"是小于五的意思,"六"是大于五的意思,"五"是舍入位之后的尾数逢五的话看前一位,奇进偶不进.如1.25保留一位小数,因为2是偶数,所以是1.2.又如1.35,因为3是奇数,所以是1.4.

驻马店市18685454149: VB 6 Round函数问题!!! -
糜于沃森: 因为Round函数实行Banker舍入,而不是我们习惯的算术舍入(四舍五入).另外VB对浮点数的处理有误差.可以参考微软的Knowledge Base Q194983 PRB: Round Function Different in VBA 6 and Excel Spreadsheet Q189847 INFO: New String and Format Functions in Visual Basic 6.0 Q196652 HOWTO: Implement Custom Rounding Procedures

驻马店市18685454149: vb.net里四舍五入用什么函数(谢谢) 0 -
糜于沃森: Round函数 返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果.语法 Round(expression [,numdecimalplaces]) expression 必需的.要进行四舍五入运算的数值表达式. numdecimalplaces 可选的.数字值,表示进行四舍五入运算时,小数点右边应保留的位数.如果忽略,则Round函数返回整数.

驻马店市18685454149: excel 4舍6入 -
糜于沃森: 没想到还真的是这样, 在vba里 是 4舍6入5单进 4.655 round (4.655, 2) 4.66 4.645 round (4.645, 2) 4.64 但在工作表中, 工作表函数 round 则是 4舍5入 ,不过工作表里 还有roundup和rounddown 函数 这个过程可以实现你要的效果, 不过 用 Worksheet_Change 来写,不好, 最好是写个 函数.

驻马店市18685454149: VB比较怪函数ROUND如何解释 -
糜于沃森: 没啥奇怪,应该是小于等于五舍,大于五则入.debug.Print round(25.80500001,2)25.81 代码中可采取一些补救:Debug.Print Round(28.805 + 0.0000000001, 2)

驻马店市18685454149: vb 四舍五入函数 -
糜于沃森: math.round(0.0615,3)*3

驻马店市18685454149: EXCEL里面的ROUND是什么意思 -
糜于沃森: Round 函数, 返回按指定位数进行四舍五入的数值.可选项.数字表明小数点右边有多少位进行四舍五入.如果小数位数是负数,则round()返回的结果在小数点左端包含指定个零.如果省略,则 Round 函数返回整数. 扩展资料 Round 函数在MSDN里的中文释义为四舍五入,这是翻译时的疏忽.在 VB,VBScript,C#,J#,T-SQL 中 Round 函数都是采用 Banker's rounding(银行家舍入)算法,即四舍六入五取偶.事实上这也是 IEEE 规定的舍入标准.因此所有符合 IEEE 标准的语言都应该是采用这一算法的. 参考资料round(函数)百度百科

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网