小数点以下の長さを短くしたい
text1.text = 2137.2198231578
上記から、最初の2桁の10進数のみを表示したい
期待される出力
text1.text = 2137.21
これを行う方法。
小数点以下の長さを短くしたい
text1.text = 2137.2198231578
上記から、最初の2桁の10進数のみを表示したい
期待される出力
text1.text = 2137.21
これを行う方法。
Format("2137.2198231578", "####.##")
Format()
p0rterのコメントに気づいたとき、使用を投稿しようとしていました。
Format(text1.text, "000.00")
私はあなたのために四捨五入すると思いInt()
ます。
VB6を使用してから何年も経ちました...
この関数はあなたが望むことをするはずです (インラインコメントは何が起こっているかを説明するべきです):
Private Function FormatDecimals(ByVal Number As Double, ByVal DecimalPlaces As Integer) As String
Dim NumberString As String
Dim DecimalLocation As Integer
Dim i As Integer
Dim LeftHandSide As String
Dim RightHandSide As String
'convert the number to a string
NumberString = CStr(Number)
'find the decimal point
DecimalLocation = InStr(1, NumberString, ".")
'check to see if the decimal point was found
If DecimalLocation = 0 Then
'return the number if no decimal places required
If DecimalPlaces = 0 Then
FormatDecimals = NumberString
Exit Function
End If
'not a floating point number so add on the required number of zeros
NumberString = NumberString & "."
For i = 0 To DecimalPlaces
NumberString = NumberString & "0"
Next
FormatDecimals = NumberString
Exit Function
Else
'decimal point found
'split out the string based on the location of the decimal point
LeftHandSide = Mid(NumberString, 1, DecimalLocation - 1)
RightHandSide = Mid(NumberString, DecimalLocation + 1)
'if we don't want any decimal places just return the left hand side
If DecimalPlaces = 0 Then
FormatDecimals = LeftHandSide
Exit Function
End If
'make sure the right hand side if the required length
Do Until Len(RightHandSide) >= DecimalPlaces
RightHandSide = RightHandSide & "0"
Loop
'strip off any extra didgits that we dont want
RightHandSide = Left(RightHandSide, DecimalPlaces)
'return the new value
FormatDecimals = LeftHandSide & "." & RightHandSide
Exit Function
End If
End Function
使用法:
Debug.Print FormatDecimals(2137.2198231578, 2) 'outputs 2137.21