如何精确显示非常大的整数?

samtyty 2009-01-05 11:32:08
因为计算过程希望能够显示计算次数,但是次数肯定会超过long类型的最大范围,该如何处理呢?最好能够提供源代码。
...全文
157 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SYSSZ 2009-01-05
  • 打赏
  • 举报
回复
使用Currency型数据
东方之珠 2009-01-05
  • 打赏
  • 举报
回复
用Currency类型,或者LARGE_INTEGER类型
samtyty 2009-01-05
  • 打赏
  • 举报
回复
Tiger_zhao的方法最好了。
原来对VB中了解远远不够啊。
yesvery 2009-01-05
  • 打赏
  • 举报
回复
对不起,最后一句应该是
S = C & B & A
总之,此法可得到任意大的累加次数
yesvery 2009-01-05
  • 打赏
  • 举报
回复
对不起,最后一句应该是
S = C & B & C
总之,此法可得到任意大的累加次数
yesvery 2009-01-05
  • 打赏
  • 举报
回复
Currency型数据只能达到10的15次方,也是有限的,下面的方法可得到无限大的数据。
因为累计次数总是一个一个加的,因此,就好办了。
Long型数据虽然只达到10的9次方,但两个Long型数据拼接可达到10的18次方。以此类推。

Dim A As Long, B As Long, S As String

Private Sub Sum()
A=A+1
if A >= 1000000000 then
A=0
B=B+1
End If
S=B & A
End Sub

如果10的18次方还嫌不够,就再添加一个Long型变量C,
当B累加到100000000时,把B清零,C加1,而 S=B & A & C


chenyanm 2009-01-05
  • 打赏
  • 举报
回复
可以用分割字符串,把数字分割为几段来处理,然后再合并
zuoxingyu 2009-01-05
  • 打赏
  • 举报
回复
long 4字节
DOUBLE 8字节
CURRENCY 8字节
DECIMAL 14字节
VARIANT 16字节
Tiger_Zhao 2009-01-05
  • 打赏
  • 举报
回复
Option Explicit

Sub Main()
Dim i As Long
Dim v As Variant
v = CDec(1) '显式转化为 Decimal 类型
For i = 1 To 20
Debug.Print i & "! =";
v = v * i 'Long 和 Decimal 类型之间的运算,i 自动转换为 Decimal 类型
'如果保险起见,可以对 i 进行 CDec() 转换
Debug.Print v
Next
End Sub

7,786

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧