我正在为 MRP 程序编写一份报告,其中包含一个我为订购数量计算的字段。如果是小数点,我需要将数字四舍五入。
例如:2.33 需要四舍五入到 3 等等。
我试过了
oder = round(order,0).
但这只是让我得到 2.00 我需要将该数字四舍五入到下一个整数。
我正在为 MRP 程序编写一份报告,其中包含一个我为订购数量计算的字段。如果是小数点,我需要将数字四舍五入。
例如:2.33 需要四舍五入到 3 等等。
我试过了
oder = round(order,0).
但这只是让我得到 2.00 我需要将该数字四舍五入到下一个整数。
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 ).
x = round(n + 0.4999999999, 0)
...对于 n 的负值也应该适用于所有人
roundUp() 在所有上述 n 的负值中解析为 -1
这也适用于负值。返回值有意保留为整数,您也可以将其保留为十进制。
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.
使用以下内容:
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.