zgfp.net
当前位置:首页 >> jAvA中short型相除为什么出来的是Int型? >>

jAvA中short型相除为什么出来的是Int型?

java中的算术运算是有数据类别级别之分的(以运算中优先级高的为准),如果你的short相除计算中出现了int结果是int型的

精度小于int的数值运算的时候都会被自动转换为int后进行计算

因为short b=1中的1其实是int型, 然而这种赋值编译器会自动将int型转成short型,前提是编译时,如果是运行时就不会自动转了哦! 也就是后面的b=b+1,其中"小类型"与"大类型"计算,结果是大类型,也就是(b+1)是int型,int型赋给short型,且是运算...

java 规定就是这样的吧。有的编程语言比如javascript alert(5/3);会弹出1.666..7会出现小数 编程里的运算符不能完全和数学的运算符等同。所以不要把数学的除法 等同于java的除法 比如 + 号可以作为连接符 1+"2" 结果是=>字符串"12" 连最简单的 ...

int类型表示的范围要比short类型宽,如果结果是 short,精度就会损失, 结果可能就不对了。 一般情况,在一个表达式中有多个类型参与运算,结果是表示范围宽的那个类型。

Java 中有除法运算(/)和取余运算(%)。如果是两个int相除,取整除部分,忽略余数;如果是两个int取余,取余数部分,忽略整除。如:public static void main(String[] args) {int m = 5;int n = 2;System.out.println("整除:" + (m / n)); //...

如果整数运算子,拥有最少一个型别 long 的操作数时,那这运算会以 64-位精度来实现,而这数值运算子的结果是型别 long 的。如果其它的操作数不是 long,它会先被以数值升级(§5.6)宽化(§5.1.4)到型别 long。否则,运算会以 32-位精度来实现...

用强制转换,比如 double c = (double)a/b; 这样把a强制转换为double来计算,double/int 得到的就是double; 当然float同理.

int型除以double型,结果是double型 自动转换遵循以下规则: 1) 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。 2) 转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。 ...

java中的short和int类型转换,当将一个数值范围小的类型赋给一个数值范围大的数值型变量,jvm在编译过程中俊将此数值的类型进行了自动提升。实例如下:

网站首页 | 网站地图
All rights reserved Powered by www.zgfp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com