为了账号安全,请及时绑定邮箱和手机立即绑定

Java基础问题 关于变量强制转换的问题

Java基础问题 关于变量强制转换的问题

Neil2015 2016-10-03 18:00:08
class TestVeriable{        public static void main(String[] args){               long l = 12;               float f = l;               System.out.println(f);         }}long不是8字节的吗?为什么转换成4字节的float可以直接通过?不报错
查看完整描述

2 回答

已采纳
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

你这样写顶多会发生数据溢出精度失常,但不至于报错

int是最通常用的整数类型,通常情况下,一个java整数常量默认的就是int类型,除此之外,如果使用一个巨大的整数常量(超过了int类型的表述范围)java不会自动把这个整数常量当成long类型来处理,如果希望系统把一个整型常量当作long类型来处理,应在这个整数常量后加上L作为后缀


所以你举得例子就能解释了,表述范围小的 l 当让能够顺理成章的直接付给另一个表数范围大的float f 了,属于系统的自动类型转换

以上,望采纳

查看完整回答
2 反对 回复 2016-10-03
?
雪颲

TA贡献220条经验 获得超117个赞

会丢失精度而已不会报错啊

查看完整回答
反对 回复 2016-10-03
  • 2 回答
  • 0 关注
  • 1261 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信