为什么我们应该写(L)长和(F)浮点数和(D)双Java语言。示例浮点数= 190.12f。
答案 0 :(得分:0)
你不必写任何东西。如果不结束带有后缀的数字文字以明确指定其类型,则默认情况下将假定为int
或double
(基于它是否包含小数点)。
如果您希望将文字视为非默认类型(如此长),则必须明确指定它(例如使用L
)。有时您被迫明确指定类型 - 例如,文字10000000000不会传递编译,因为它对于int
来说太大了,所以您必须编写10000000000L以便编译器将其视为{ {1}}。
答案 1 :(得分:0)
您不必为D
键入double
,因为double
是浮点数的默认类型。
现在double
和float
之间的差异归结为精确度。 Java使用32位来存储float
s和64位用于double
s。
实际上double
是一个愚蠢的名字,它起源于Fortran,它意味着 双精度 。
int
和long
完全相同。 int
是32位的默认类型,long
是64位。因此,int可以在-2^31
和(2^31)-1
之间以long
和-2^63
之间存储签名值。有关详细信息,请查看here <登记/>
因此,如果您希望不将数字视为默认类型,则必须以某种方式让编译器知道。强调(2^63)-1
的{{1}}和L
的{{1}}。
事实上,当你执行long
之类的操作时,你隐含地将f
文字强制转换为float
。
该陈述等于float x = 0.1f
为了更好地理解这个,请看一下这个例子:
让我们说我们有这两个变量:
0.1
您认为float
会输出什么? (花一点时间考虑一下)中国(中国)
答案是:float x = (float) 0.1
为什么?让我们看看小数点后的前20位数字:
float x = 0.1f;
double y = 0.1;
我希望这会有所帮助。