'自定义一个函数:功能是给小数直接进一位
目前成都创新互联公司已为千余家的企业提供了网站建设、域名、网络空间、网站改版维护、企业网站设计、石林网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
'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
Option Explicit On
Option Strict On
Imports System
Module Program
Sub Main()
Dim s As String
Dim strs As String()
Dim fz,fm,n,m,t As Long
Console.Write("请输入一个小数:")
s=Console.ReadLine().Trim()
strs=s.Split("."C)
fz=CLng(strs(0))
fm=CLng(Math.Pow(10,strs(1).Length))
fz=fz*fm+CLng(strs(1))
n=fz
m=fm
While n Mod m0
t=n Mod m
n=m
m=t
End While
fz\=m
fm\=m
Console.WriteLine("{0}={1}/{2}",s,fz,fm)
Console.Write("Press any key to continue . . . ")
Console.ReadKey(True)
End Sub
End Module
保留两位小数的一般方法是四舍五入法。
保留两位小数,看千分位。是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
方法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, "提示"