dim num
num = 4895390000000005
msgbox FormatNumber(num, 0, -2, -2, false)
輸出爲4895390000000010的VBScript:FormatNumber()/四捨五入問題
,而不是4895390000000005
感謝您的幫助
dim num
num = 4895390000000005
msgbox FormatNumber(num, 0, -2, -2, false)
輸出爲4895390000000010的VBScript:FormatNumber()/四捨五入問題
,而不是4895390000000005
感謝您的幫助
好像你的 「數」 比整數更大,聲明爲小數適用於我:
Dim num As Decimal
num = 4895390000000005
MsgBox(FormatNumber(num, 0, -2, -2, False))
確實,如果你想在普通的老v bscript(.vbs)你可以很容易地創建一個庫來處理數學函數和vbscript中不可用的類型。以下是一個簡短的工作示例。讓我知道它是否有用。
--in視覺工作室:
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
--now更新您的.vbs:
dim mathLib
set mathLib = CreateObject("sampleMathLibrary.mathLibrary")
Dim num
num = "4895390000000005"
msgbox mathLib.roundNumber(num)
這裏正在例如使用COM可見.NET類。
With CreateObject("System.IO.StringWriter")
.Write_7 4895390000000005
MsgBox .GetStringBuilder().ToString()
End With
這裏是參考link欲瞭解更多信息。
您使用的是vb或vbscript嗎?我不認爲你可以使用'as'語法在vbscript中聲明變體。它會拋出'期望的結束聲明'錯誤 – Kyle