Java错误“可能会丢失精度”

时间:2013-09-13 02:20:43

标签: java

我在计算机科学课(第11期)因为我必须在照片后面做一些代码 --------------------配置:--------------------

C:\Users\I_SLAY_NOOBS\Desktop\Variables.java:26: error: possible loss of precision
        float floatOne = 58.5678;
                         ^
  required: float
  found:    double
1 error

流程已完成。

2 个答案:

答案 0 :(得分:2)

您为声明为double的变量指定比float更精确的float。浮点值以Java中的 f 结尾。普通浮点数自动被认为是双倍的......

要么:

float f = 58.5678f;

或:

double d = 58.5678;

答案 1 :(得分:1)

如果真正需要float(单精度IEEE754),您可以使用:

float floatOne = 58.5678f;

我,我只是简单地使用double类型,因为它提供的精度比float更高:

double doubleOne = 58.5678;

Java中的浮点常量(以及C和C ++等)的默认值是双精度,你试图把它变成单精度变量,因此消息。将f附加到浮点常量会告诉编译器您想要它是单精度。

除非你有大量阵列(并且存储空间有限),否则通常首选双打。