2017-07-16 55 views
0

下面的代码导致的编译器错误在Java默认为整数数据类型floting点的文字值和

float variable = 123.4 

而正是因为这样的事实,对于浮点字面值默认为双倍数据类型。所以,我们应该提前将字面值赋给float,或者将变量声明为double来解决这个问题。 正如我们所知,整数立即数的默认值为整数数据类型。然而,没有编译器错误,当我们宣布字节变量如下面

byte variable = 123 

我想要的例子就知道为什么我们没有,如果投123 字节数据类型的默认为一体的字面值是整数。

+2

如果你写'浮点型变量= 123.4f',则不需要进行转换 – janos

+3

不存在将'123'作为字节存储的精度损失 – khelwood

+0

我同意@janos但是,这是一个常见的约定大写字母初始化文字时。 –

回答

0

整型字节,short,int和long的值可以用int文字创建,而值可以适合变量的类型。

您可以检索信息here

所以这个:

byte variable = 123; 

是罚款123适合一个字节。

byte variable = 1000;

将无法​​编译为1000不适合一个字节。

+0

I认为'123.4D'也适合浮动。 – saka1029

+0

@ saka1029它没有指定float,'123.4D'不是一个整型文字。 – davidxxx

+0

毫无疑问,我们可以像这个float变量= 1.4那样声明一个浮点文字值,虽然1.4完全适合浮点数据类型,但是会有一个编译器错误,我们必须将1.4转换为浮点数据类型java的 – moha

相关问题