那些数字是什么,它们的类型是什么?

时间:2016-10-22 11:50:57

标签: java double literals primitive-types

好的我在这里有几个值:

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

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

5 个答案:

答案 0 :(得分:1)

您正在寻找的是this

  • 关于77.7
  

浮点字面值的类型为float,如果它以字母F结尾   或f;否则它的类型是双倍的,它可以选择以   字母D或d。

  • 0xf不属于hex类型。没有类型hex。它只是一个int十六进制的wirtten。就像070是用八进制写的int一样。

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

  • eexponent,即77e-1f实际上是77 * 10^(-1)7.7。文字7.77e1是双倍的,出于同样的原因,77.7是双倍的,7.77e1等于7.77 * 10 ^ 1 = 77.7

答案 1 :(得分:0)

你唯一没有解释过的两个:

7.7f

f表示浮动 - 它表示这不应该是 double 文字,但是,浮动一个!默认情况下,您会看到任何"浮点"文字自动为 double 类型,你需要" f"为了强制执行"较小的"浮动类型。

并且

77e-1f 

正在使用科学记数法,请参阅here以获取进一步说明。

答案 2 :(得分:0)

  

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

浮动数字必须在末尾用f表示,但数字最后不需要d

77e-1f是一个 float 数字77,相当于10^-1,所以它等于7.7

7.77e1 == 77.7

相同

答案 3 :(得分:0)

在Java中,包含点的数字文字默认为double类型。如果你想要一个浮点数,你可以附加f

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

答案 4 :(得分:0)

  

77e-1 表示:77是数字乘数,e(或E)表示base 10,{{1 }表示指数。

结果是-1由(77提供10)或-1提供77,i。即的 .1

此表示法的名称为科学对数,适用于非常大或非常小的数字,例如: G。 7.7可以表示为1 million = 1.000.000