Java-为什么method参数将float值视为double值?

时间:2014-01-31 04:42:41

标签: java casting

我已经定义了一个带有一个float类型参数的方法,如下所示:

public float getValue(float value){

    return value;
}

当我通过传递下面显示的 10.1201 浮动值来调用此方法时:

float value =  methodReturnTest.getValue(10.1201);

我的IDE说要将参数转换为float。我试过搜索但无法得到合适的答案。发布它。 请解释 。

感谢。

4 个答案:

答案 0 :(得分:11)

Java将10.1201作为double。要传递float值,您应该将f添加到其中,如下所示:

float value =  methodReturnTest.getValue(10.1201f);

答案 1 :(得分:4)

在java Float Literals中,最后使用f指定,否则将其视为双字面。

这样做

float value =  methodReturnTest.getValue(10.1201f);

答案 2 :(得分:3)

Float是单精度32位IEEE 754浮点数 Double是双精度64位IEEE 754浮点。 当您使用带小数点的值时,如果您没有指定为0.23f(特别是浮点数),则java将其标识为double。

对于十进制值,double数据类型通常是java采用的默认选择。 check this

答案 3 :(得分:2)

您必须在浮点数后添加f。如果不这样做,Java将无法知道该数字是应该被视为float还是double。

float value =  methodReturnTest.getValue(10.1201f);