如何将数字 10000000000000000000000000000001 转为字符 “10000000000000000000000000000001”用format(10000000000000000000000000000001)="1E+31"
用cstr(10000000000000000000000000000001)="1E+31"有什么简便的方法吗?
用cstr(10000000000000000000000000000001)="1E+31"有什么简便的方法吗?
调试欢乐多
str1 = Format(1E+31, "0000000000000000000000000000000")
MsgBox (str1)
Format(10000000000000000000000000000001, "0000000000000000000000000000000")="10000000000000000000000000000000" 注意最后一个是0不是1,另外
10000000000000000000000000000001只是一个例子值,不一定知道多少位的。
str1 = Format(1E+31, "0")
MsgBox (str1)这个可以,你不要管多少个0,都给你规整了
Dim str1 As Stringi = 1E+31
str1 = Format(i, "0")
MsgBox (str1)
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)写成Byte(),一个字节一个字节的读写,就没问题了
Dim str1 As Stringi = (1E+31 )+1
str1 = Format(i, "0")
MsgBox (str1)得出的是10----------00而不是需要的10----------01
关于用FORMAT函数格式化,楼主测试以下代码:
Option ExplicitPrivate Sub Form_Click()
Dim mD As Double
Dim mS As String
mD = 10 ^ 31 + 1
mS = Format(mD, "01")
Print mS, Len(mS)
End Sub如果你把MD声名成VARIANT都溢出,那你的数据处理可能存在问题了。可以考虑用BYTE数组。
用1000000000000000000001 少了10个0也是有一样的问题。
变量用double就行。
format(1E+31,"general number")
To viena:还是最后少了一个1.
另外数字15位以上就自动转为1E+ 了,不好处理。
不一定需要31位的。
real(1E+38) Double(1E+308)都能放。