文字整数是常量,它永远不会改变.因此,如果隐式转换是安全的,编译器可以在编译时推断出来,如果它是,它足够好,可以为你做.
这也是byte i = 300;编译时失败的原因.
当转换为非常数值时,不能说同样的情况; 一个变量.编译器无法知道i将是什么值,因此隐式转换是不安全和不允许的.
至于为什么这种行为与和双精度浮点数(见注释)似乎关闭:原因是,有是在语言文字的浮动,因此,如果你想有一个浮动的文字,用文字的浮动.没有字节或短文字,所以编译器会帮助你
此外,将有效值拟合int为a byte意味着不会丢失数据/精度; 这些位是相同的,你只是截断高端的0位.将a转换double为a 时,同样不能说float.任何给定数字作为单精度或双精度浮点数的表示都是根本不同的,并且存在固有的精度损失.按理说,语言设计决策在两种情况之间都有所不同,因为它们完全不同.
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |