![](/img/trans.png)
[英]HP/Tandem TACL How to use the % as a value in the SQL like clause
[英]NUMIN producing wrong output,how to get right answer?
我正在创建一个程序来计算数字的位数
当我将值放入 5 位时,它会产生正确的答案,但是当我将值放入 6 位时,它会产生错误的值。
为了查看代码中发生的情况,我调试了代码,发现当我输入 5 位数字时,它会正确地从字符串转换为 int,但是当我输入 6 位值时,它会将值转换错误并给出一些负值。
我在用
CALL NUMIN(AB,NUM,10,STAT);
AB 是一个字符串 ab[0:40]
NUM 是 Integer
STAT 是一个字符串 STAT[0:50]
在 TAL 中,无符号 Integer 的范围从0 到 65,535 ,有符号的 Integer 的范围从-32,768 到 32,767 ,因此不可能将 6 位数字输入到字符串中并使用 NUMIN GPC(Guardian 程序调用)进行转换。
相反,您可以使用带符号的双字 integer INT(32).EXT,它是 32 位 integer,范围为 -2,147,483,648 至 2,147,483,647 ,您可以轻松使用 6 位以上的输入。 要将 6 个字符或超过 6 个字符的字符串转换为 Integer 使用 DNUMIN GPC
DNUMIN ( ascii-num
,signed-result
,base
,status );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.