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)