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 に答える