整數除法操作的取整問題


整數除法舍入方式:

整數相除涉及到舍入的問題,有這么四種舍入方式:向偶數舍入,向零舍入,向下舍入,向上舍入。

向偶數舍入:(也叫作最接近的值舍入) 值應該舍入到距離自己最近的數字。當值處於中間的時候,應該讓最低有效位保持偶數。所以,按照這種策略,1.4應該舍入到1,1.6應該舍入到2,只有在x.5的時候要考慮個位數保持偶數,比如1.5應該舍入到2, 2.5也應該舍入到2,因為2是偶數。

向零舍入: 很好理解,向靠近零的整數舍入。

向下舍入:也就是我們常說的向下取整 $\lfloor x \rfloor $

向上舍入:也就是向上取整  $\lceil x \rceil$

 

Java及c語言中的除法:

Java以及c語言當中的整數除法采用的是向0舍入的方式:

public class div {
    public static void main(String[] args){
        int a = 3/2;  //float除法應該為 1.5
        int b = 5/3;  //float除法應該為 1.666
        int c = 5 /4;  //~~~~~~~~~~~~  1.25

        int d = -3/2; //~~~~~~~~~~~~  -1.5
        int e = -5/3; //~~~~~~~~~~~~~~  -1.66
        int f = -5/4; //~~~~~~~~~~~~~~  -1.25

        System.out.printf("a is %d\nb is %d\nc is %d\n" +
                          "d is %d\ne is %d\nf is %d\n",
                           a, b,c,d,e,f);
    }
}

 

輸出結果為:

a is 1
b is 1
c is 1
d is -1
e is -1
f is -1

 

Python中的除法:

Python當中 '/'表示float除法, '//'是整數除法,遵循的原則是向下取整

a = 3//2  # 1.5
b = 5//3  # 1.66
c = 5//4  #1.25

d = -3//2 # -1.5
e = -5//3 # -1.66
f = -5//4 # -1.25
print(a,b,c)
print(d,e,f)

結果為:

1 1 1
-2 -2 -2

'//'這種運算 可以使用 int(a//b)來轉化為向0取整。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM