使用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
下面是调用宏后的显示结果,精度提高了很多。

总结:
只要善于思考方法还是多余问题的,我们总是能够找到解决问题的途径。
博客介绍了如何使用PB(PowerBuilder)编程时,通过自定义宏函数Str64来突破系统内置STR$和FORMAT$函数对于数值转换字符串的19位长度限制。实验表明,利用宏可以实现更高精度的转换,从而提高数值表示的精度。文章强调了创新思维在解决技术问题中的重要性。
820

被折叠的 条评论
为什么被折叠?



