16进制转换出错EConvertError,请教

时间:2021-03-03 08:44:27
我执行:
var
  a:string;
...
a := '60';
StrToInt('$'+'60');

出错,提示'...EConvertError...$60 is not a Valid integer value.
是什么原因,是不是delphi配置有问题?

4 个解决方案

#1


是不是60前后有空格或者是全角数字呀,没遇到过这种情况
你也可用StrToIntDef转换,这样转换不了的,可以给一个默认值

#2


StrToInt本身就不能转换'$60'
请使用StrToHex('$60')

#3


StrToInt本身就不能转换'$60'
请使用StrToHex('$60', 2)

#4


呵呵,头晕了,居然搞出个StrToHex函数来了

以为楼主要将string的转为Hex型的呢

楼主的错误可能是有非法字符引起的

#1


是不是60前后有空格或者是全角数字呀,没遇到过这种情况
你也可用StrToIntDef转换,这样转换不了的,可以给一个默认值

#2


StrToInt本身就不能转换'$60'
请使用StrToHex('$60')

#3


StrToInt本身就不能转换'$60'
请使用StrToHex('$60', 2)

#4


呵呵,头晕了,居然搞出个StrToHex函数来了

以为楼主要将string的转为Hex型的呢

楼主的错误可能是有非法字符引起的