不带前导字符的进度 ABL 格式十进制数
Progress ABL format decimal number without leading characters
我只想格式化一个十进制数以输出到一个简单的 CSV 格式文件。
我觉得我很愚蠢,但我找不到没有前导零或空格的方法,当然我可以简单地 trim 前导空格,但必须有一种正确的方法来格式化就像我那样,不是吗?
例子
define variable test as decimal.
define variable testString as character.
test = 12.3456.
testString = string(test, '>>>>>9.99').
message '"' + testString + '"' view-as alert-box. /* " 12.35" */
我尝试使用 >>>>>9.99
和 zzzzz9.99
作为数字格式,但两者都使用前导空格来格式化字符串。我实际上不知道使用 >
和 z
.
之间有什么区别
SUBSTITUTE() 函数将执行您描述的要求:
define variable c as character no-undo.
c = substitute( "&1", 1.23 ).
display "[" + c + "]".
(如果你真的只想要 2 个小数位,请输入 TRUNCATE( 1.2345, 2 )。)
其实这个也行:
string( truncate( 1.2345, 2 )).
如果您正在创建 CSV 文件,您可能需要考虑使用 EXPORT。 EXPORT 格式删除了前导空格并省略了像“,”这样的装饰。 SUBSTITUTE() 函数基本上使用 EXPORT 格式进行替换。当未指定其他格式时,STRING() 函数使用 EXPORT 格式。
EXPORT
语句将为您格式化数据。这是一个例子:
DEFINE VARIABLE test AS DECIMAL NO-UNDO.
DEFINE VARIABLE testRound AS DECIMAL NO-UNDO.
DEFINE VARIABLE testString AS CHARACTER NO-UNDO.
test = 12.3456.
testRound = ROUND(test, 2).
testString = STRING(test).
OUTPUT TO VALUE("test.csv").
EXPORT DELIMITER "," test testRound testString.
OUTPUT CLOSE.
这是输出:
12.3456,12.35,"12.3456"
EXPORT
语句的默认分隔符是 space,因此您必须为 CSV 文件指定一个逗号。由于 test
和 testRound
变量是小数,因此它们在输出中不在引号中。 testString
是字符,所以它在引号中。
我只想格式化一个十进制数以输出到一个简单的 CSV 格式文件。 我觉得我很愚蠢,但我找不到没有前导零或空格的方法,当然我可以简单地 trim 前导空格,但必须有一种正确的方法来格式化就像我那样,不是吗?
例子
define variable test as decimal.
define variable testString as character.
test = 12.3456.
testString = string(test, '>>>>>9.99').
message '"' + testString + '"' view-as alert-box. /* " 12.35" */
我尝试使用 >>>>>9.99
和 zzzzz9.99
作为数字格式,但两者都使用前导空格来格式化字符串。我实际上不知道使用 >
和 z
.
SUBSTITUTE() 函数将执行您描述的要求:
define variable c as character no-undo.
c = substitute( "&1", 1.23 ).
display "[" + c + "]".
(如果你真的只想要 2 个小数位,请输入 TRUNCATE( 1.2345, 2 )。)
其实这个也行:
string( truncate( 1.2345, 2 )).
如果您正在创建 CSV 文件,您可能需要考虑使用 EXPORT。 EXPORT 格式删除了前导空格并省略了像“,”这样的装饰。 SUBSTITUTE() 函数基本上使用 EXPORT 格式进行替换。当未指定其他格式时,STRING() 函数使用 EXPORT 格式。
EXPORT
语句将为您格式化数据。这是一个例子:
DEFINE VARIABLE test AS DECIMAL NO-UNDO.
DEFINE VARIABLE testRound AS DECIMAL NO-UNDO.
DEFINE VARIABLE testString AS CHARACTER NO-UNDO.
test = 12.3456.
testRound = ROUND(test, 2).
testString = STRING(test).
OUTPUT TO VALUE("test.csv").
EXPORT DELIMITER "," test testRound testString.
OUTPUT CLOSE.
这是输出:
12.3456,12.35,"12.3456"
EXPORT
语句的默认分隔符是 space,因此您必须为 CSV 文件指定一个逗号。由于 test
和 testRound
变量是小数,因此它们在输出中不在引号中。 testString
是字符,所以它在引号中。