初始化浮点值时出错

时间:2015-02-01 15:02:54

标签: java floating-point netbeans-8

为什么不允许这样做?

float n;
n =  1234567.89;

但是这是。

float n;
n =  (float) 12.3456789;

我使用的是JAVA 8和Netbeans 8.0.1。

下面的IDE快照。

enter image description here

4 个答案:

答案 0 :(得分:3)

默认情况下,Java将文字小数解释为double,因此要输入浮点数,您需要执行以下操作之一:

  1. float n = 1234567.89f;
  2. float n = (float) 1234567.89;
  3. 请注意,这样做可能会导致精度下降。

答案 1 :(得分:2)

java在第一行将其视为double。 n = 1234567.89不是浮动的。 double是8字节,float是4字节。 解决方案是

float n;
n =  1234567.89f;

答案 2 :(得分:1)

如果将十进制数定义为1234567.89,则将其解释为 double

浮点数以字母 f 结尾。您可以将其定义如下。

float n;
n =  1234567.89f;

Float是32位IEEE 754浮点。 Double是64位IEEE 754浮点。

答案 3 :(得分:1)

使用

float n;
n =  1234567.89f;

默认情况下,这会将您的号码声明为浮点值而不是双精度值。