如何获取整数格式的10位数字值?

时间:2019-07-12 06:13:01

标签: openedge progress-4gl

我试图从整数中获取10位格式值(实际格式为4位)。但是其修剪前缀为零并返回相同的值。

让我分享我的尝试。

DEFINE VARIABLE idata AS INTEGER NO-UNDO.
DEFINE VARIABLE iValue AS INTEGER NO-UNDO.

idata = 111.

iValue = INTEGER(STRING(idata, "99999999999")).

DISPLAY iValue.

我可以知道这是怎么回事吗?以及如何获得我的问题的答案?

3 个答案:

答案 0 :(得分:4)

你想要

0000000111要显示?

然后使用9描述格式。它将插入0。>将插入

DEFINE VARIABLE idata AS INTEGER NO-UNDO.

idata = 111.

DISPLAY iData FORMAT "9999999999".

或者简单地

DEFINE VARIABLE idata AS INTEGER NO-UNDO FORMAT "9999999999".

idata = 111.

DISPLAY iData.

要将其转换为前缀为零的10个字符串:

DEFINE VARIABLE idata AS INTEGER   NO-UNDO.
DEFINE VARIABLE cdata AS CHARACTER NO-UNDO.

idata = 111.

cData = STRING(iData, "9999999999").

DISPLAY cData.

答案 1 :(得分:3)

DISPLAY iValue FORMAT "99999999999" .

答案 2 :(得分:3)

您的问题是存储与显示格式无关。

与SQL不同,Progress不会将两者链接在一起。这是 功能 和4gl的强度。

数据的存储取决于数据类型。对于整数,范围是:-(2 ^ 31)到((2 ^ 31)-1)

(更令人兴奋的是-在幕后,每种数据类型(包括整数)的存储长度都是 variable 长度。所用空间不足于必要。您的程序无法知道这一点,除了对正在计划磁盘空间需求的DBA而言,这没关系。

每个字段或变量都具有默认的DISPLAY格式。对于整数,默认格式为“->,>>>,>> 9”。在定义或显示字段或变量时,您始终可以覆盖此设置。它不影响数据的存储,也不以任何方式影响分配。

每种数据类型还具有EXPORT格式,该格式允许基础数据的完全精度,而无需任何其他格式字符,例如逗号,前导零,货币符号等。