Java语言中的原始数据类型

时间:2015-03-12 11:40:41

标签: java

为什么我们应该写(L)长和(F)浮点数和(D)双Java语言。示例浮点数= 190.12f。

2 个答案:

答案 0 :(得分:0)

你不必写任何东西。如果不结束带有后缀的数字文字以明确指定其类型,则默认情况下将假定为intdouble(基于它是否包含小数点)。

如果您希望将文字视为非默认类型(如此长),则必须明确指定它(例如使用L)。有时您被迫明确指定类型 - 例如,文字10000000000不会传递编译,因为它对于int来说太大了,所以您必须编写10000000000L以便编译器将其视为{ {1}}。

答案 1 :(得分:0)

您不必为D键入double,因为double是浮点数的默认类型。

现在doublefloat之间的差异归结为精确度。 Java使用32位来存储float s和64位用于double s。
实际上double是一个愚蠢的名字,它起源于Fortran,它意味着 双精度
intlong完全相同。 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;

我希望这会有所帮助。