JAVA中给变量赋值的问题
在JAVA中,Byte和Short是例外,可以直接把int赋值给其,比如bytea=5且如果写bytea=5*10也是可以编译打印的,结果是50但是如果我先写bytea=...
在JAVA中,Byte和Short是例外,可以直接把int赋值给其,比如 byte a = 5
且如果写 byte a = 5 * 10 也是可以编译打印的,结果是50
但是如果我先写 byte a = 5 ,再写 byte b = a * 10 则损失精度,
我想问,byte b = a * 10中的a是byte型,10 是int型,那么乘起来应该是还是int,既然前面说了byte和short可以用Int赋值,且如果是直接赋值,比如byte a = 5 或者 byte a = 5 * 10 也确实可以,但为什么先写 byte a = 5 ,再写 byte b = a * 10 就不行了??? 展开
且如果写 byte a = 5 * 10 也是可以编译打印的,结果是50
但是如果我先写 byte a = 5 ,再写 byte b = a * 10 则损失精度,
我想问,byte b = a * 10中的a是byte型,10 是int型,那么乘起来应该是还是int,既然前面说了byte和short可以用Int赋值,且如果是直接赋值,比如byte a = 5 或者 byte a = 5 * 10 也确实可以,但为什么先写 byte a = 5 ,再写 byte b = a * 10 就不行了??? 展开
4个回答
展开全部
在JAVA里面只能从小的data type转换到大的data type。
所以说你的程序, "byte a = 5; byte b = a * 10; "会有编译错误。
10是int, byte b = a * 10在编译的时候会尝试着让10变成byte,但这是错误的。
正确的程序应该是”byte a = 5; byte b = (byte)(a * 10); "
所以说你的程序, "byte a = 5; byte b = a * 10; "会有编译错误。
10是int, byte b = a * 10在编译的时候会尝试着让10变成byte,但这是错误的。
正确的程序应该是”byte a = 5; byte b = (byte)(a * 10); "
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是类型转换问题,int比byte要高,我们都知道低类型转换为高类型,系统默认转换,而且不会损失精度,而高类型转换低类型,则会出现损失精度,不准确等,要想把高类型转为低类型,只能进行类型强转。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可能想错了了哦那个方法a.pick()肯定有返回值他的返回值也是double类型,其实
area=a.pick()不是把方法赋给double变量area只是把方法返回的double类型的值赋给了area所以这种是可以的。相当于你直接这样的写法例子:
double
area
=
2.2d;
area=a.pick()不是把方法赋给double变量area只是把方法返回的double类型的值赋给了area所以这种是可以的。相当于你直接这样的写法例子:
double
area
=
2.2d;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询