为什么我在用VB6编程时输入format(Hex(138)),"00")结果确是0,而输入其它数如format(Hex(137)),"00),form
答案:2 悬赏:20 手机版
解决时间 2021-11-27 04:57
- 提问者网友:疯子也有疯子的情调
- 2021-11-27 01:48
为什么我在用VB6编程时输入format(Hex(138)),"00")结果确是0,而输入其它数如format(Hex(137)),"00),format
最佳答案
- 五星知识达人网友:山河有幸埋战骨
- 2021-11-27 02:55
format中"0"用于用户自定义数值格式串,数值格式串是指全部由数字组成的字符串(如果“2”、“23”等),当用“0”格式化非数值串时,将来不想要的结果。
hex(137)="89"是数值串所以没有问题。
hex(138)="8A"不是数值串,所以有问题。
对于字节变量转16进制,希望得到两位而需要补“0"的最佳方法是:
s=right("0" & hex(65),2)
s=right("0" & hex(138),2)
hex(137)="89"是数值串所以没有问题。
hex(138)="8A"不是数值串,所以有问题。
对于字节变量转16进制,希望得到两位而需要补“0"的最佳方法是:
s=right("0" & hex(65),2)
s=right("0" & hex(138),2)
全部回答
- 1楼网友:神的生死簿
- 2021-11-27 04:23
FORMAT不能格式化输出16进制里的字母
可以另写一个函数来输出两位的16进制数
Function format_h(s As String) As String
If Len(s) = 1 Then format_h = "0" & s & "H"
If Len(s) = 2 Then format_h = s & "H"
End Function追问为什么我在用VB6编程时输入format(Hex(138)),"00")结果确是0,而输入其它数如format(Hex(137)),"00),format(Hex(139)),"00")等都能有正常的结果.追答我查了一下HEx()函数,它返回的是一个string型
所以在format里不该用"00",0是用来格式化输出数值的
Format((Hex(138)), "@@") 或 Format((Hex(138)), "&&") 都可以
可以另写一个函数来输出两位的16进制数
Function format_h(s As String) As String
If Len(s) = 1 Then format_h = "0" & s & "H"
If Len(s) = 2 Then format_h = s & "H"
End Function追问为什么我在用VB6编程时输入format(Hex(138)),"00")结果确是0,而输入其它数如format(Hex(137)),"00),format(Hex(139)),"00")等都能有正常的结果.追答我查了一下HEx()函数,它返回的是一个string型
所以在format里不该用"00",0是用来格式化输出数值的
Format((Hex(138)), "@@") 或 Format((Hex(138)), "&&") 都可以
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯