dim num
num = 4895390000000005
msgbox FormatNumber(num, 0, -2, -2, false)
输出为4895390000000010
而不是4895390000000005
感谢您的帮助
答案 0 :(得分:1)
好像你的“数字”大于整数,声明为十进制为我工作:
Dim num As Decimal
num = 4895390000000005
MsgBox(FormatNumber(num, 0, -2, -2, False))
答案 1 :(得分:1)
以下是使用com visible .net class。
的工作示例With CreateObject("System.IO.StringWriter")
.Write_7 4895390000000005
MsgBox .GetStringBuilder().ToString()
End With
这里有参考link以获取更多信息。
答案 2 :(得分:0)
是的,如果您希望在普通的旧vbscript(.vbs)中执行此操作,则可以轻松创建一个库来处理数字函数和vbscript中不可用的类型。以下是一个简短的工作示例。如果它有用,请告诉我。
- 在视觉工作室:
Imports System
Public Class mathLibrary
Public Function roundNumber(number As String) As String
Dim roundedNumber As String = ""
Dim largeNumber As Decimal = 0
If IsNumeric(number) Then
largeNumber = Convert.ToDecimal(number)
roundedNumber = FormatNumber(largeNumber, 0, TriState.UseDefault, TriState.UseDefault, TriState.False)
End If
Return roundedNumber
End Function
End Class
- 现在更新你的.vbs:
dim mathLib
set mathLib = CreateObject("sampleMathLibrary.mathLibrary")
Dim num
num = "4895390000000005"
msgbox mathLib.roundNumber(num)