有没有人知道为什么 INTEGER(“”)在进度4GL中为零? 即使将空字符串传递给INTEGER()函数,结果也是一样的。围绕这个理论可能是什么?请帮忙
我已经阅读了文档,但找不到任何相关内容。
答案 0 :(得分:2)
INTEGER()函数可能会修改输入数据。
这个简单的例子显示了修剪的迹象:
DISPLAY INTEGER("1") = INTEGER(" 1 ").
显示是
1周围的空间实际上并没有影响上述转换的结果,这让我觉得INTEGER会修剪。结果相同:
DISPLAY INTEGER(" ") = INTEGER("").
我不知道为什么INTEGER(“”)会返回0而不是?例如INTEGER(“你好”)。我想这只是一个定义问题。
答案 1 :(得分:1)
“为什么”是一个宗教问题...
我相信4GL可能正在处理一个空字符串,就像空整数填充一样。 (请记住,“”等于4gl中的“”。)
试试这个:
define variable i as integer no-undo.
i = 2.
update i.
键入空格键。请注意该值如何变为零?
答案 2 :(得分:0)
""是字符的默认值。如果你定义一个char变量并且没有指定INIT值,它将是""。 0是整数的默认值。所以INTEGER("")非常类似于具有默认初始值的整数,即0。