保留两位小数的一般方法是四舍五入法。
张家口网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。成都创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
保留两位小数,看千分位。是4或比4小舍去;是5或比5大舍去以后向前一位进1。
如:3.425保留两位小数就是3.43
3.421保留两位小数就是3.42
又如: 3.4263保留两位小数就是3.43
3.4233保留两位小数就是3.42
再如:3.4保留两位小数就是3.40
'自定义一个函数:功能是给小数直接进一位
'num 要操作的小数
'n 保留几位小数,
Function getNumber(num As Double, n As Integer) As Double
Dim a As Double
a = Int(num * (10 ^ n)) / (10 ^ n)
If a = num Then
getNumber = a
Else
getNumber = a + 1 / (10 ^ n)
End If
End Function
-------------------------
调用一下:
Private Sub Command1_Click()
MsgBox (getNumber(3.1415926, 2))
End Sub
得到3.15
代码分析:
Math.Floor:返回小于或等于指定数字的最大整数。
Fix:返回数字的整数部分。
Math.Floor 和 Fix 函数都移除 Number 的小数部分并返回得到的整数值。
Math.Floor 和 Fix 函数之间的区别在于:如果 Number 为负,则 Math.Floor 返回小于或等于 Number 的第一个负整数,而 Fix 返回大于或等于 Number 的第一个负整数。例如,Math.Floor 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。
你的要求:如果你的要求是直接舍去,那么应当采用Fix方法,考虑到时负数的情况,那么采用Math.Floor将会出现非预期的结果。
测试结果:见附图。
欢迎交流。
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 数字四舍五入为个位数。要求