这些数字是什么,它们的类型是什么?
好吧,我有一对夫妇在这里值:这些数字是什么,它们的类型是什么?
'F', 0xf, 070, 70L, 77e-1f, 7.7f, 7.77e1, 77.7
我知道'F'
是char
和70L
有型long
。另外,我知道0xf
是十六进制(对吧?),而070
是八进制。但那些其他数字是什么?为什么地狱是77.7
double
而不是float
?
什么你要找的是this
- 关于
77.7
:
浮点文字是float类型的,如果它与字母F 或f结束;否则它的类型是双倍的,并且它可以选择以字母D或d结束 。
0xf
是hex
类型不是。没有类型hex
。这只是一个十六进制的wirttenint
。就像070
是用八进制写的int
。文字
77e-1f
显然是一个浮点数,因为它以f
结尾。的
e
是exponent
即77e-1f
实际上77 * 10^(-1)
或7.7
。由于相同的原因,字面7.77e1
是双倍数77.7
是双倍数,只是7.77e1
等于7.77 * 10^1
=77.7
。
只有两个,你没有解释自己:
7.7f
使得f意味着浮动 - 这表明,这不应该是一个双文字,但远,浮法之一!你可以看到,默认情况下,任何“浮点”文字自动类型为double,您需要“f”才能执行“更小”浮点类型。
而且
77e-1f
用科学记数法,见here例如用于进一步的解释。
在包含一个点的Java数值文字相同的类型的默认两倍。如果你想要一个浮动,你可以追加f
。
包含e
的数字是指数或科学记数法,但我不打算在这里解释它,因为它与编程无关。
77E-1含义:
77
是数乘法器,e
(或E
)指base 10
,和-1
装置指数。
所以结果是通过77
(10
搭载-1
),或通过77
.1
岛即7.7
这个符号的名称是科学或对数,也是很好的非常大或非常小的数字,E。 G。 1 million = 1.000.000
可能表示为1e6
*为什么地狱*你已经包含了你已经知道的东西? :) –
*“为什么地狱是77.7倍,不漂浮?”*研究不是你的力量,对吧? https://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.2。至少你得到了另一个不好的用户“可怜upvote”:)。 – Tom
我不明白。所以77.7和77,7不一样? – Geddi