gpt4 book ai didi

abap - 如何用左边的符号和千位分隔点写数字

转载 作者:行者123 更新时间:2023-12-05 00:30:23 26 4
gpt4 key购买 nike

我在abap中保存了字符格式的数字。因为我必须从右到左取减号。所以我必须将数字放入字符并移位或使用函数 'CLOI_PUT_SIGN_IN_FRONT' 我正在向左移动减号。
但是在为字符分配数字后,它不保留分数。我的意思是我的号码是;

  • 1.432-(作为整数)
  • -1432(作为字符)

  • 我想要;
  • -1.432(作为字符)

  • 对此是否有快​​捷方式,或者我应该附加一些字符串操作。
    编辑:
    这就是我现在正在做的事情。
    data: mustbak_t(10) TYPE c,
    mustbak like zsomething-menge.

    select single menge from zsomething into mustbak where something eq something.
    mustbak_t = mustbak.

    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
    CHANGING
    VALUE = mustbak_t.

    write: mustbak_t.

    最佳答案

    如果您使用的是最近发布的版本,则可以使用 string templates - 您必须添加一些黑魔法才能使用符合您的十进制设置的国家/地区:

    DATA: l_country TYPE t005x-land,
    l_text TYPE c LENGTH 15,
    l_num TYPE p LENGTH 6.

    SELECT SINGLE land
    INTO l_country
    FROM t005x
    WHERE xdezp = space.

    l_num = '-123456'.
    l_text = |{ l_num COUNTRY = l_country }|.

    WRITE: / l_text.

    在这种情况下,您需要一个国家代码来传递给 COUNTRY 参数,如 format options 中所述。 country-specific formats 中详细描述了各个字段的值,即 T005X-XDEZP

    tl;dr = 查找他们使用“.”的任何国家/地区。作为千位分隔符和“,”作为小数分隔符,并使用该国家/地区设置来格式化数字。

    您也可以使用经典格式模板,但除非您有固定长度的输出值,否则它们很难处理:
    DATA: l_text TYPE c LENGTH 15,
    l_num TYPE p LENGTH 6 DECIMALS 2.

    l_num = '-1234.56'.
    WRITE l_num TO l_text USING EDIT MASK 'RRV________.__'.
    CONDENSE l_text NO-GAPS.

    WRITE: / l_text.

    关于abap - 如何用左边的符号和千位分隔点写数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141821/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com