2012-12-26 106 views

回答

1

好像你的 「數」 比整數更大,聲明爲小數適用於我:

Dim num As Decimal 

num = 4895390000000005 

MsgBox(FormatNumber(num, 0, -2, -2, False)) 
+1

您使用的是vb或vbscript嗎?我不認爲你可以使用'as'語法在vbscript中聲明變體。它會拋出'期望的結束聲明'錯誤 – Kyle

0

確實,如果你想在普通的老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) 
1

這裏正在例如使用COM可見.NET類。

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

這裏是參考link欲瞭解更多信息。