对所有人来说,这可能是一个简单的问题,但它让我的脑海里出现了一个问题,“为什么会这样?”
正如您在下面的代码中看到的那样,我已经声明了一个float
变量并为其分配了一个值。当这段代码被编译和解释时,我会得到一个错误,possible loss of precision
因为浮点常量的java解释器的默认数据类型是双精度的。
查询 1:我想知道,当我的浮动常量可以容纳 float 提供的字节数时,我为什么要在我的应用程序中浪费内存以获得双精度。
查询 2:现在如果我指定我将得到输出,但现在为我的变量float a = 3.1415f ;
分配了多少内存。a
float a = 3.1415 ;
System.out.println("Value of a:"+a);
我真的很想了解这个hack,为什么会这样?