- 爲什麼的C值是2.0和2.5,儘管它們有相同的數據類型
如何轉換髮生在A/B類型鑄造如何在java中工作?
public static void main(String[] args) { int a = 5,b=2; float c; c=a/b; System.out.println(c); c=(float)a/b; System.out.println(c); }
1
A
回答
3
答案在於理解的是,儘管宣稱c
作爲float
,整數除法仍然與a/b
發生。 Java中的整數除法將截斷任何小數部分(因此它可以保留爲int
)。只有當它被分配到c
時被隱式轉換爲float
,並且打印2.0
。
在(float)a/b
澆鑄到float
改變a
到5.0f
和力浮點分割前的結果被分配給c
,所以正確的結果2.5
被打印。
0
在第一條語句中,計算了a/b
。由於這兩個變量都是整數,結果也是一個整數:2
。在您的第二個聲明中,a
首先轉換爲float
,然後除以b
。作爲其中一個值是float
,結果也是float
:2.5
。
0
第一個除法是int/int - > int結果。 第二個是Float/int, - >浮點結果。
相關問題
- 1. 在Java中的類型鑄造/鑄造
- 2. Java類型鑄造
- 3. Java編程,類型鑄造
- 4. 鑄造父類型 - Java的
- 5. 在Java中鑄造不兼容類型
- 6. 鑄造類型在java中的方法
- 7. 類型從CHAR在Java中鑄造短
- 8. 在XAML中鑄造類型
- 9. 鑄造類型
- 10. Java泛型 - 類型鑄造問題
- 11. Java泛型 - 錯誤鑄造泛型類
- 12. Java泛型類型擦除鑄造
- 13. 如何在java中鑄造前檢查類型
- 14. java - 鑄造泛型
- 15. 鑄造從類型類型
- 16. Android Java類鑄造
- 17. flex3類型鑄造
- 18. 類型鑄造datetime
- 19. SQL類型鑄造
- 20. Windbg類型鑄造
- 21. Python類型鑄造
- 22. Oracle類型鑄造
- 23. VB.NET - 鑄造類型
- 24. JodaTime類型鑄造
- 25. 在c中鑄造泛型類型#
- 26. java中的類鑄造
- 27. c中的類型鑄造#
- 28. 類型鑄造uitextfield在montouch?
- 29. 類型鑄造在c#.net
- 30. 類型鑄造在objective-c
歡迎回來* Integer Division *。 –
'a'是一個整數,'b'是一個整數,所以沒有明確的轉換,結果也是一個整數 – joval
注意類型轉換優先於'/'運算符,這樣' )a/b'與'((float)a)/ b'相同。如果你寫了'(float)(a/b)',你仍然會得到'2.0'。 – ajb