dim num
num = 4895390000000005
msgbox FormatNumber(num, 0, -2, -2, false)
输出为 4895390000000010
而不是 4895390000000005
谢谢您的帮助
似乎您的“数字”大于整数,声明为十进制对我有用:
Dim num As Decimal
num = 4895390000000005
MsgBox(FormatNumber(num, 0, -2, -2, False))
这是使用 com visible .net 类的工作示例。
With CreateObject("System.IO.StringWriter")
.Write_7 4895390000000005
MsgBox .GetStringBuilder().ToString()
End With
这里是更多信息的参考链接。
诚然,如果您希望在普通的旧 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)