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