float i=3.5 怎么提示错误?应该会自动转换的啊,,,,,,byte b =5 可以自动从int转到byte.......怎么这个不可以, 也没有超出范围啊,
------解决思路----------------------
这跟范围的关系不大,就像我说的3.5默认是double类型的,怎么可能自动向下转型呢。如果没有小数默认为double的话,你的声明就没错了,但存在这样一个语法规则那么就必须遵守了
------解决思路----------------------
你这里定义时是把double类型赋值给float类型当然会提示损失精度的错误
------解决思路----------------------
整数强制转换如果没有超出范围是不会丢失任何精度的,所以能转的就自动转了方便写代码。浮点数在某些情况下转换是会丢失精度的,所以除非你显式转换,编译器不会冒这个风险,不然有可能造成难以发现的bug。