十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
'自定义一个函数:功能是给小数直接进一位
在花垣等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、成都网站建设 网站设计制作按需求定制开发,公司网站建设,企业网站建设,品牌网站设计,成都全网营销,外贸网站制作,花垣网站建设费用合理。
'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
举个例子
Dim a As Decimal = 1.999
Dim b As Decimal = Math.Round(a, 2)
结果为b = 2.00
四舍五入保留两位
方法1:
先取10倍后小数,再取整,再与10求余数,得到小数点后一位
代码:
Dim a As Double
a = 3.1415926
MsgBox "小数点后一位为:" Str(Int(a * 10) Mod 10), 0, "提示"
方法2:
先将小数用Format转成只有一位小数字符,然后用Right取最后一位字符,得到小数点后一位
代码:
Dim a As Double
a = 3.1415926
MsgBox "小数点后一位为:" Right(Format(a, ".#"), 1), 0, "提示"
方法3:
先将小数放大1倍,再取整数,然后用Right取最后一位字符,得到小数点后一位
代码:
Dim a As Double
a = 3.1415926
MsgBox "小数点后一位为:" Right(Str(Int(a * 10)), 1), 0, "提示"
方法4:
将数先放大10倍,取整,减去取整后放大10倍的数,得到得到小数点后一位的值
代码:
Dim a As Double
a = 3.1415926
MsgBox "小数点后一位为:" Str(Int(a * 10) - Int(a) * 10), 0, "提示"
'这一个题我有答过了。可以看我回答的链接。
'使用Format返回指定的格式
Dim Numd As Double = 66.6666666666
Label1.Text = Format(Numd , "#.#####") '#.# 可自定格式化显示长度。
VB用Format 函数即可实现。
Format 函数,返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。
Print Format(3.1415926, "#.##")
*#:表示一个数字位。#的个数决定了显示区段的长度。如果要显示的数值的位数小于格式字符串指定的区段长度,则该数值靠区段的左端显示。如果要显示的数值的位数大于指定的区段长度,则数值照原样显示。 要显示多位,只需要设置数字位数即可,例如:
Print format(3.14159262654321,”#.#######”)
显示:3.1415926