问题
I've searched for this answer but cannot find anything for VBS.
For instance:
dim num
num = 1234567890123456 'a 16 digit number
msgbox num
Working with num
in any way will result in the number being displayed in scientific notation.
How can I avoid this?
回答1:
The 16 digit number is changed to a Double
by VBScript because neither Int
, nor Long
can store that number. You can use the FormatNumber function to display it as an integer:
FormatNumber(Expression, NumDigitsAfterDecimal, IncludeLeadingDigit, UseParensForNegativeNumbers, GroupDigit)
num = 1234567890123456
msgbox FormatNumber(num, 0, -2, -2, false)
回答2:
If you don't like the default textual representation of your number, request one explicitly.
msgbox FormatNumber(num, 2)
(reference)
This, however, has nothing to do with how the number is actually stored (as a double
).
来源:https://stackoverflow.com/questions/14044057/vbscript-expanding-precision-to-16-decimals-to-circumvent-scientific-notation