【发布时间】:2021-05-31 00:35:51
【问题描述】:
我正在使用 Progress-4GL,版本 11.6,appBuilder 和过程编辑器。
我有一个值为“1000000000000”的字符串,我想将其转换为整数。
首先我尝试使用简单的转换来做到这一点,但这不起作用:
Result = INT(value). => runtime error 15747.
由于提到的值大约是 2^39 和 INT 似乎用于 32 位值,这似乎是正确的。
所以,我决定使用更大的数据类型,INT64,但这似乎给出了相同的错误信息:
Result = INT64(value). => again runtime 15747.
这怎么可能?一个 64 位整数怎么可能无法保存 2^39 附近的值?
哦,如果你想知道我是在创建一个 32 位还是 64 位应用程序,我不知道,我如何从程序编辑器/appBuilder 中知道?
【问题讨论】:
-
您能否说明究竟是如何进行“简单转换”的?最好使用确切的字符串
"1000000000000"。当然,一个 64 位整数可以容纳 2^39。 -
@MSalters:老实说,字符串的确切值是
"0001000000000000",但即使是开头多余的零,这个数字也不应该太大。
标签: openedge progress-4gl integer-overflow