Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7189086
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2007-07-09 16:24:17

众所周知,SAP的数据基本都是四舍五入的
但是,有些时候就是需要不要四舍五入,直接截断,怎么办?
 
这么办:
REPORT Z_BARRY_TEST_ROUND .
DATA: pp1 TYPE p DECIMALS 3,
      pp2 TYPE p DECIMALS 2,
      pp3 TYPE p DECIMALS 2,
      ii1 TYPE i .
pp1 = '1452.345'.
pp3 = pp1 .
ii1 = 2.
PERFORM noround USING    pp1 ii1
                CHANGING pp2.
WRITE: pp2,pp3.
*&--------------------------------------------------------------------*
*&      Form  noround
*&--------------------------------------------------------------------*
FORM noround USING     p1 i1
             CHANGING  p2.
  DATA: tmpn1(20) TYPE n ,
        tmpn2(20) TYPE n ,
        tmpc1(20) TYPE c .
  tmpc1 = p1.
  SPLIT tmpc1 AT '.' INTO tmpn1 tmpn2.
  CONCATENATE tmpn1 '.' tmpn2+0(i1) INTO tmpc1.
  p2 = tmpc1.
ENDFORM.                    "noround
 
 
或者:
REPORT  z_barry_test.

DATA: p1 TYPE p DECIMALS 4.

p1 = '3.456'.

CALL FUNCTION 'ROUND'
  EXPORTING
    decimals      = 2
    input         = p1
    sign          = '-'  
  IMPORTING
    output        = p1
  EXCEPTIONS
    input_invalid = 1
    overflow      = 2
    type_invalid  = 3
    OTHERS        = 4.

WRITE p1.
 
Sign:
SPACE : no rounding (input = output)
'+' : round up
'-' : round down
'X' : commercial rounding
 
阅读(8593) | 评论(3) | 转发(0) |
0

上一篇:Server List

下一篇:upload attachment

给主人留下些什么吧!~~

chinaunix网友2010-01-21 16:48:52

TRUNC和FRAC只是取整数部分和小数部分,不能截取任意位置

chinaunix网友2010-01-21 16:45:51

trunc :Value of the integer part of the argument arg frac :Value of the decimal places of the argument arg

soukyo2009-07-01 15:31:01

TRUNC FRAC就可以的吧