Plsql 四舍五入到最低值

Plsql 四舍五入到最低值,plsql,Plsql,下面的语句将值四舍五入到下一个数字,上面的答案实际上是3,5。如何将当前值舍入为3而不是4 l_low number := 1; l_high number := 7; l_mid := trunc(l_low + (l_high - l_low)/2); 我认为您的代码几乎是正确的,但是和并不完全正确。认为这就是你要寻找的: DECLARE l_low NUMBER := 1; l_high NUMBER := 7; l_mid NUMBE

下面的语句将值四舍五入到下一个数字,上面的答案实际上是3,5。如何将当前值舍入为3而不是4

l_low number := 1;
l_high number := 7;

l_mid := trunc(l_low + (l_high - l_low)/2);

我认为您的代码几乎是正确的,但是和并不完全正确。认为这就是你要寻找的:

DECLARE
        l_low NUMBER := 1;
        l_high NUMBER := 7;

        l_mid NUMBER;
BEGIN
        l_mid := TRUNC((l_low + (l_high - l_low)) / 2);
        DBMS_OUTPUT.PUT_LINE(l_mid);
END;
/

为什么你认为答案应该是3?7-1/2=3和trunc3+1=trunc4=4除了计算之外,如果您的目的是总是四舍五入,那么您希望使用第7层/2@NonPlusUltra当你处理数字时,FLOOR和TRUNC是同义词。这没有意义。l_low+l_high-l_low可以简化为l_high。换句话说,这忽略了l_low的值,如果这就是目的的话,它肯定不会给出中点。e、 g.如果l_low=5,l_high=6,则结果为3,超出范围。