Java整數間的除法運算那點事


1、情景展示:

double d = 1 / 10;
System.out.println(d);

得到的結果竟然是0.0,這是怎么回事?

2、原因分析:

第一步、你會發現用運算結果也可以用int類型接收!

int i = 1 / 10;
System.out.println(i); // 0

得到結果為0,也就是說:
在java中,整數之間的除法運算,不管小數位有多少位,小數是幾,統統舍棄,只返回整數位數字!
第二步、再看下面兩個:

long l = 1 / 10;
float f = 1 / 10;

表明用long類型和float類型也可以接受
第三步,為什么整數間的除法運算,只返回整數位?
因為在Java中,由運算結果,由被運算數的最高數據類型決定,也就是說:整數之間的運算,數據類型都為int類型,所以,返回的結果也為int類型。

3、解決方案

如果我們想要返回完整的運算結果 ,我們就需要將其中一個的數據類型轉換成double類型或者float類型,而不是只改變接收運算結果的數據類型!
方式一:將被除數轉換成double類型

double d = 256d / 10;
System.out.println(d); // 25.6

方式二:將除數轉換成double類型

double d = 256 / 10d;
System.out.println(d); // 25.6

方式三:將被除數轉換成float類型

float f = 256f / 10;
System.out.println(f); // 25.6

方式四:將除數轉換成float類型

float f = 256 / 10f;
System.out.println(f); // 25.6

連續運算

int i = 1234567 / 1000 / 36;
float f = 1234567f / 1000 / 36;
System.out.println(i); // 34
System.out.println(f); // 34.29353


免責聲明!

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



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