我如何以数字格式存储非常大的数字而不是科学的 请记住,我将存储的数字对于长数据类型来说太大了 我将其设置为字符串 我有一个带有命令按钮和文本框的用户窗体。 以下是示例代码:
Private Sub Cmd_Click()
Dim bits As Integer
Dim out As String
bits = 64
out = 2 ^ (bits - 1)
Txt_Output.Value = out
End Sub
以上将返回:9.22337203685478E + 18。 但我想要9223372036854775807 谁能解释如何避免这种情况?
提前致谢。
P.S。我希望避免使用数组。
答案 0 :(得分:1)
您可以使用Decimal
数据类型和计算例程的修改来实现特定计算:
Private Sub Cmd_Click()
Dim bits As Integer
Dim out As Variant
Dim i As Long
bits = 64
out = CDec(1)
For i = 1 to bits - 1
out = out * 2
Next
Txt_Output.Value = out
End Sub
通过强制out
成为Variant/Decimal
,计算在计算时不会失去精确度。但是,某些内容(例如CDec(2) ^ CDec(63)
)仍会失去精度,因为使用中间Double
精度进行计算,因此您需要非常小心地进行计算。
这可能会为您提供有关如何概括该方法以获得所需内容的线索。
如果您有64位Excel,则可以使用LongLong数据类型。