
正文
vb.net四舍六入的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB.net round问题
这应该是由浮点数的误差所造成的,你把kk设为双精度浮点数,那么结果就是1.34
但是浮点数误差与精度是无关的,双精度也同样存在,继续测试你就会发现有趣的现象:
下面假定s为单精度浮点数变量,d为双精度浮点数变量,则:
s = 1.345 Round(s, 2) = 1.35 (错)
d = 1.345 Round(d, 2) = 1.34 (对)
s = 2.345 Round(s, 2) = 2.35 (错)
d = 2.345 Round(d, 2) = 2.35 (错)
s = 3.345 Round(s, 2) = 3.35 (错)
d = 3.345 Round(d, 2) = 3.34 (对)
s = 4.345 Round(s, 2) = 4.34 (对)
d = 4.345 Round(d, 2) = 4.34 (对)
可以发现这错误的发生是毫无规律的,有时候真能让人发疯!
相关问答
Q1: VB 四舍六入五取双 取余数 mod
“四舍六入五成双”,也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,"六"是指≥6时进上,"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。(0是偶数)
也就是非整数时,先round函数取整,再求余。这个算法与excel 不同
round(-7.2)=-7, round(-3.5)=-3, round(2.5)=2, round(1.5)=2
这些整数再取余,应该就好理解了
Q2: vb.net里四舍五入用什么函数
使用Math.Round(),注意返回值可能为Double或Decimal。
如果取整,第二个参数不填或者填0
默认采用 四舍六入五成双,如果想四舍五入,请采用MidpointRounding.AwayFromZero作为第三个参数
Dim 数字 As Double = 2.45
Dim r1 As Double = Math.Round(数字, 1, MidpointRounding.ToEven) ' r1 = 2.4 四舍六入五成双
Dim r2 As Double = Math.Round(数字, 1, MidpointRounding.AwayFromZero) ' r2 = 2.5 四舍五入
Q3: vb.net里四舍五入用什么函数(谢谢)
round是vb6.0的吧,我刚才查了一下,在vb.net里变成了枚举了成员为
成员名称 说明
RoundToBillionth 数字四舍五入为 9 个小数点位。
RoundToHundred 数字四舍五入为百位数。
RoundToHundredMillionth 数字四舍五入为 8 个小数点位
RoundToHundredth 数字四舍五入为 2 个小数点位
RoundToHundredThousand 数字四舍五入为十万位数。
RoundToHundredThousandth 数字四舍五入为 5 个小数点位。
RoundToMillion 数字四舍五入为百万位数。
RoundToMillionth 数字四舍五入为 6 个小数点位
RoundToTen 数字四舍五入为十位数。
RoundToTenBillionth 数字四舍五入为 10 个小数点位
RoundToTenMillionth 数字四舍五入为 7 个小数点位
RoundToTenth 数字四舍五入为 1 个小数点位。
RoundToTenThousand 数字四舍五入为万位数。
RoundToTenThousandth 数字四舍五入为 4 个小数点位。
RoundToThousand 数字四舍五入为千位数。
RoundToThousandth 数字四舍五入为 3 个小数点位。
RoundToUnit 数字四舍五入为个位数。要求
vb.net四舍六入的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net四舍六入的信息别忘了在本站进行查找喔。








