1
dim num

num = 4895390000000005 

msgbox FormatNumber(num, 0, -2, -2, false)

输出为 4895390000000010

而不是 4895390000000005

谢谢您的帮助

4

3 回答 3

1

似乎您的“数字”大于整数,声明为十进制对我有用:

Dim num As Decimal

num = 4895390000000005

MsgBox(FormatNumber(num, 0, -2, -2, False))
于 2012-12-26T19:34:08.460 回答
1

这是使用 com visible .net 类的工作示例。

With CreateObject("System.IO.StringWriter")
    .Write_7 4895390000000005
    MsgBox .GetStringBuilder().ToString()
End With

这里是更多信息的参考链接

于 2013-01-09T20:32:36.533 回答
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)
于 2013-01-07T19:23:46.197 回答