2016-10-22 93 views
-2

好吧,我有一对夫妇在这里值:这些数字是什么,它们的类型是什么?

'F', 0xf, 070, 70L, 77e-1f, 7.7f, 7.77e1, 77.7 

我知道'F'char70L有型long。另外,我知道0xf是十六进制(对吧?),而070是八进制。但那些其他数字是什么?为什么地狱是77.7double而不是float

+1

*为什么地狱*你已经包含了你已经知道的东西? :) –

+1

*“为什么地狱是77.7倍,不漂浮?”*研究不是你的力量,对吧? https://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.2。至少你得到了另一个不好的用户“可怜upvote”:)。 – Tom

+0

我不明白。所以77.7和77,7不一样? – Geddi

回答

1

什么你要找的是this

  • 关于77.7

浮点文字是float类型的,如果它与字母F 或f结束;否则它的类型是双倍的,并且它可以选择以字母D或d结束 。

  • 0xfhex类型不是。没有类型hex。这只是一个十六进制的wirtten int。就像070是用八进制写的int

  • 文字77e-1f显然是一个浮点数,因为它以f结尾。

  • eexponent77e-1f实际上77 * 10^(-1)7.7。由于相同的原因,字面7.77e1是双倍数77.7是双倍数,只是7.77e1等于7.77 * 10^1 = 77.7

+0

OKOK非常感谢你:) – Geddi

+0

@Pshemo你当然是对的。固定。 – Malt

0

只有两个,你没有解释自己:

7.7f 

使得f意味着浮动 - 这表明,这不应该是一个文字,但远,浮法之一!你可以看到,默认情况下,任何“浮点”文字自动类型为double,您需要“f”才能执行“更小”浮点类型。

而且

77e-1f 

用科学记数法,见here例如用于进一步的解释。

0

为什么地狱是77.7倍,而且不漂浮?

浮动号已被使用f的结束,但数字表示不需要对最终d

77e-1f浮子77到的10^-1功率,所以它等于7.7

7.77e1 == 77.7

+1

但是我们正在讨论java的。在Java中,字面070是八进制。总是。 – GhostCat

+0

谢谢,我删除了那部分。 – Defozo

+0

非常感谢:) – Geddi

0

在包含一个点的Java数值文字相同的类型的默认两倍。如果你想要一个浮动,你可以追加f

包含e的数字是指数或科学记数法,但我不打算在这里解释它,因为它与编程无关。

0

77E-1含义:77是数乘法器,e(或E)指base 10,和-1装置指数。

所以结果是通过7710搭载-1),或通过77.1岛即7.7

这个符号的名称是科学对数,也是很好的非常大或非常小的数字,E。 G。 1 million = 1.000.000可能表示为1e6

相关问题