2020-08-14 22:49发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我有以下问题:
我有一个与货币相关的值,我需要避免舍入(在进行乘法和除法计算之后),并显示该值并保留小数点后4位。
示例
当前值从49.4099999999舍入到49.41。
我需要49.4099。
我尝试将数据元素更改为4位小数,但这不起作用,其值显示为49.4100。
请帮助。
阅读有关算术表达式,计算类型和转换规则的文档。
作为ABAP开发人员,您应该知道这一点。
知道为什么需要对货币金额进行此看似奇怪的四舍五入会非常有趣。
尝试以下示例代码。 您将看到所需的结果。
常量c_val类型c长度50值'49 .4099999999'。数据lv_result类型p十进制4. DATA(out)= cl_demo_output => new()。 lv_result = round(val = c_val dec = 4 mode = 5)。" ROUND_DOWN out-> write(lv_result)。 out-> display()。
:) >
是的,这有点有趣,因为我们并不总是确定客户的要求。
但是我仍然需要满足要求。
实际上有一种基于货币的换算,并且此值以表格形式打印。
转换有点复杂,由于该转换,小数点在输出中转换为逗号(,)。 同样,由于这种转换,输出中不会显示小数位。
例如,将49.41转换为4,941。
现在,由于小数转换为逗号,因此要求在输出中显示两个小数位。
像这样的东西:4,940.99
我在外部添加了" .00",但他们希望显示一些值而不是" .00"。 因此,为了满足此要求,团队决定在计算出值后显示4位小数,然后将其更改回2位小数。 希望可以解决" .00"问题。
希望你明白了!
:D
感谢评论。
我得到了输出。 我必须将公式分解为3个部分,并将值存储在具有4个小数位的局部变量中。
这样做是因为公式包含一些声明为2个小数的变量。
因此,最终值是2个小数。
现在,本地变量将显示带有四位小数的值。
谢谢大家的帮助!
:)
不确定,您是否通过过OSS注释403254,其中解释了舍入的原理
我遇到了相反的问题, 一系列折扣导致条件值未均分到单价中。 我们的客户永远不会接受数学未能正确扩展的发票。 我检查了标准定价程序,发现将NETP条件类型与需求2/计算类型6/基本类型3一起使用将为您舍入条件值,因此数学将起作用,并且客户不会抱怨。
最多设置5个标签!
阅读有关算术表达式,计算类型和转换规则的文档。
作为ABAP开发人员,您应该知道这一点。
知道为什么需要对货币金额进行此看似奇怪的四舍五入会非常有趣。
尝试以下示例代码。 您将看到所需的结果。
常量c_val类型c长度50值'49 .4099999999'。
数据lv_result类型p十进制4.
DATA(out)= cl_demo_output => new()。
lv_result = round(val = c_val dec = 4 mode = 5)。" ROUND_DOWN
out-> write(lv_result)。
out-> display()。
:) >
是的,这有点有趣,因为我们并不总是确定客户的要求。
但是我仍然需要满足要求。
实际上有一种基于货币的换算,并且此值以表格形式打印。
转换有点复杂,由于该转换,小数点在输出中转换为逗号(,)。 同样,由于这种转换,输出中不会显示小数位。
例如,将49.41转换为4,941。
现在,由于小数转换为逗号,因此要求在输出中显示两个小数位。
像这样的东西:4,940.99
我在外部添加了" .00",但他们希望显示一些值而不是" .00"。 因此,为了满足此要求,团队决定在计算出值后显示4位小数,然后将其更改回2位小数。 希望可以解决" .00"问题。
希望你明白了!
:D
感谢评论。
我得到了输出。 我必须将公式分解为3个部分,并将值存储在具有4个小数位的局部变量中。
这样做是因为公式包含一些声明为2个小数的变量。
因此,最终值是2个小数。
现在,本地变量将显示带有四位小数的值。
谢谢大家的帮助!
:)
不确定,您是否通过过OSS注释403254,其中解释了舍入的原理
我遇到了相反的问题, 一系列折扣导致条件值未均分到单价中。 我们的客户永远不会接受数学未能正确扩展的发票。 我检查了标准定价程序,发现将NETP条件类型与需求2/计算类型6/基本类型3一起使用将为您舍入条件值,因此数学将起作用,并且客户不会抱怨。
一周热门 更多>