2e15
一目了然,我可以很容易地读为“二千万亿”,但是因为2000000000000000
我必须数零,这需要更长的时间并且可能导致错误。
为什么我不能声明int
orlong
使用诸如2e9
or之类的文字1.3e6
?我知道 10 的负幂,例如2e-3
,或小于小数位数的 10 的幂,例如1.0003e3
,会产生浮点数,但为什么 Java 不允许这样的声明,而只是截断浮点部分并在结果值非整数的情况下发出温和的警告?
这是一个坏主意是否有技术原因,或者这完全与类型安全有关?编译器简单地解析像这样的语句不是很简单吗
long x = 2e12
作为long x = 2000000000000 //OK for long
并且int y = 2.1234e3
作为int y = 2123.4 //warning: loss of precision