使用PB的朋友都知道,系统内置了两个数值转字符串函数:
|
|
系统说明:
|
表示转换的数值长度被限制在19位以内,大于部分将用0填补。
这个限制在不支持64位系统的编译器下是否可以突破呢?经过实验是可以的。
下面还是通过宏函数来定义一个,将数值转换为字符串的宏功能跳过系统限制。
#COMPILE EXE
#DIM ALL
MACRO FUNCTION Str64(a)
MACROTEMP i,s,b
LOCAL i AS INTEGER
LOCAL s AS STRING
LOCAL b AS BYTE
FOR i=0 TO 128
b = (FIX(a/(10^i)) MOD 10)
s = STR$(b) + s
NEXT i
END MACRO = LTRIM$(REMOVE$(s,$SPC), ANY "0")
FUNCTION PBMAIN () AS LONG
MSGBOX "自定义数值转字符串函数:"+$CRLF+_
Str64(10*(2^128))+$CRLF+$LF+_
"系统字符串函数STR$():"+$CRLF+_
STR$(10*(2^128))+$CRLF+$LF+_
"系统字符串函数FORMAT$():"+$CRLF+_
FORMAT$(10*(2^128),"#")
END FUNCTION
下面是调用宏后的显示结果,精度提高了很多。
总结:
只要善于思考方法还是多余问题的,我们总是能够找到解决问题的途径。