PROGRESS 4GL - DECIMAL()函数在EUROPEAN数字格式上无法正常工作数字格式
我有一个字符输出(由.i生成)传递给DECIMAL()函数,然后存储为十进制类型的变量。字符o/p采用欧盟格式(2.5个2.5)。当通过DECIMAL函数将其放入十进制变量时,该值将变为25.这是什么原因以及什么是解决方案。PROGRESS 4GL - DECIMAL()函数在EUROPEAN数字格式上无法正常工作数字格式
我已经在startup.pf中更改了所需的numsep numdec参数,但这没有帮助。
请帮助!
的代码片段如下:
def var a as decimal no-undo.
a = decimal("2,5").
message "test value" a.
您需要-e参数添加到您的startup.pf。从Progress在线文档:
“使用欧洲数字格式(-E)参数告诉AVM在显示或提示时将千位分隔符显示为句点和小数点(例如:1.234.567,89)数值“。
谢谢。忘了在我原来的文章中提到这个 - 我已经尝试过这个-E但没有工作。有没有其他的东西? –
以下是代码片段: -------------------------------- def var a as decimal no-undo。 a =十进制(“2,5”)。 消息“测试值”a。 -------------------------------- –
当我只用-E param运行代码时,我得到“test值2,5“。逗号在那里。 – TheDrooper
我认为,这显示了如何做你的需要:
define variable a as decimal no-undo.
session:numeric-format = "European".
a = decimal("2,5").
message "european:" a.
pause.
session:numeric-format = "American".
message "american:" a.
pause.
这是很方便的能够会话内部切换 - 这允许你动态地处理这两种类型动态数字输入。
谢谢汤姆。这给了我额外的知识。我已经通过会话数字属性修复了代码 - 用“欧洲”硬编码覆盖它。然而,它仍然不清楚为什么我需要以这种方式修复它,当我已经正确地在startup.pf中设置参数。 –
这个问题已经编辑和重新签署,恕我直言,现在是主题和适当形成。 –