3

我正在为 MRP 程序编写一份报告,其中包含一个我为订购数量计算的字段。如果是小数点,我需要将数字四舍五入。

例如:2.33 需要四舍五入到 3 等等。

我试过了

oder = round(order,0).

但这只是让我得到 2.00 我需要将该数字四舍五入到下一个整数。

4

4 回答 4

5
function roundUp returns integer ( x as decimal ):

  if x = truncate( x, 0 ) then
    return integer( x ).
   else
    return integer( truncate( x, 0 ) + 1 ).

end.

display roundUp( 2.33 ).
于 2013-01-29T14:26:31.113 回答
1
x = round(n + 0.4999999999, 0) 

...对于 n 的负值也应该适用于所有人

  • n = -2.0000001 ... x = -2
  • n = -2.5 ... x = -2
  • n = -2.9999999999 ... x = -2

roundUp() 在所有上述 n 的负值中解析为 -1

于 2015-02-15T22:59:55.337 回答
0

这也适用于负值。返回值有意保留为整数,您也可以将其保留为十进制。

function roundUp returns integer 
( 
    input in-value as DECIMAL 
):

    def var x as decimal no-undo.
    def var y as decimal no-undo.

    if in-value < 0 then
    DO:
        x = truncate(in-value,0).     
        y =  in-value - x.      
        if abs(y) <= 0.5 then 
            return INTEGER(x).
        else 
            return INTEGER(round(in-value,0)).
    END.
    ELSE 
        return INTEGER(round(in-value,0)).

end function.
于 2020-10-03T11:35:42.107 回答
-1

使用以下内容:

DEF VAR X AS decimal.
DEF VAR Y AS integer.

update
x with frame a.

Y = X - 1.
display y.
IF (( X - Y ) < 0.5)
THEN do:
DISPLAY round(x,0) + 1.
end.
ELSE DO :
DISPLAY round(x,0).
end.
于 2016-10-13T13:02:30.247 回答