Java 这些数字是什么?它们的类型是什么?
好的,我这里有几个值:Java 这些数字是什么?它们的类型是什么?,java,double,literals,primitive-types,Java,Double,Literals,Primitive Types,好的,我这里有几个值: 'F', 0xf, 070, 70L, 77e-1f, 7.7f, 7.77e1, 77.7 我知道'F'是字符,70L的类型是long。另外,我知道0xf是十六进制(对吗?),而070是八进制。但其他的数字是多少?为什么77.7double而不是float呢?这是你唯一没有解释的两个: 7.7f f的意思是浮动-,它表示这不应该是双精度的,而是浮动的!您可以看到,默认情况下,任何“浮点”字面值都自动为类型double,您需要“f”来强制执行“较小”的浮点类型 及 正
'F', 0xf, 070, 70L, 77e-1f, 7.7f, 7.77e1, 77.7
我知道
'F'
是字符
,70L
的类型是long
。另外,我知道0xf
是十六进制(对吗?),而070
是八进制。但其他的数字是多少?为什么77.7
double
而不是float
呢?这是你唯一没有解释的两个:
7.7f
f的意思是浮动-,它表示这不应该是双精度的,而是浮动的!您可以看到,默认情况下,任何“浮点”字面值都自动为类型double,您需要“f”来强制执行“较小”的浮点类型
及
正在使用科学符号,请参见示例以了解更多解释
为什么他妈的是77.7倍而不是浮动
Float数字必须在末尾用f
表示,但是double数字不需要在末尾用d
表示
77e-1f
是一个浮点数77
与10^-1
的幂相等,因此它等于7.7
与Java中的
7.77e1
=77.7
相同,默认情况下,包含点的数字文本的类型为double。如果你想要一个浮动,你需要附加f
包含
e
的数字是指数或科学符号,但我不打算在这里解释它,因为它与编程无关。您要找的是
- 关于
:77.7
不是0xf
类型。没有类型hex
。它只是一个十六进制的hex
wirtten。就像int
是一个用八进制写成的070
int
- 文字
显然是一个浮点数,因为它以77e-1f
结尾f
是e
指数,即
实际上是77e-1f
或77*10^(-1)
。文字7.7
是双精度的,原因相同7.77e1
是双精度的,只是77.7
等于7.77e1
=7.77*10^1
77.7
77
是数字乘法器,e
(或e
)表示基数10
,而-1
表示指数
因此,结果是77
by(10
由-1
供电),或77
由.1
供电,即。e7.7
此符号的名称为科学或对数,适用于非常大或非常小的数字,例如。g
100万=1.000.000
可以表示为1e6
为什么他妈的要包括你已经知道的东西?:)“为什么他妈的是77.7倍而不是浮动呢?”研究不是你的强项,对吧。至少你得到了另一个坏用户的“同情投票”:我不明白。那么77.7和77.7不一样吗?为什么链接到JLS?也解释了这一点,甚至对Java不熟悉的人也有可能理解它……但我们谈论的是Java。在Java中,字面值070是八进制。一直都是。谢谢,我把那部分去掉了。7.77e1=7 x 10的幂1=77.7,不是0.777。你把它改成了7.77,这仍然是错误的。。。7.77e1=77.7.真是个错误,再次感谢。好的,非常感谢:)@Pshemo你当然是对的。固定的。
77e-1f