- 为什么的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