Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-为什么方法参数将浮点值视为双精度值?_Java_Casting - Fatal编程技术网

Java-为什么方法参数将浮点值视为双精度值?

Java-为什么方法参数将浮点值视为双精度值?,java,casting,Java,Casting,我定义了一个方法,其中有一个float类型的参数,如下所示: public float getValue(float value){ return value; } float value = methodReturnTest.getValue(10.1201); 当我通过传递浮点值调用此方法时,请说10.1201,如下所示: public float getValue(float value){ return value; } float value = meth

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

public float getValue(float value){

    return value;
}
float value =  methodReturnTest.getValue(10.1201);
当我通过传递浮点值调用此方法时,请说10.1201,如下所示:

public float getValue(float value){

    return value;
}
float value =  methodReturnTest.getValue(10.1201);
我的IDE要求将参数转换为浮动。我试着搜索,但找不到合适的答案。所以把它贴出来。 请解释一下


谢谢。

Java将
10.1201
视为
double
。为了传递一个
float
值,您应该像下面这样附加
f

float value =  methodReturnTest.getValue(10.1201f);

您必须在浮点数之后添加
f
。如果不这样做,Java将不知道该数字应该被视为浮点还是双精度

float value =  methodReturnTest.getValue(10.1201f);
在java中,通过在末尾使用f来指定,否则它将被视为双文本

你喜欢这样吗

float value =  methodReturnTest.getValue(10.1201f);

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

float value =  methodReturnTest.getValue(10.1201f);
对于十进制值,双数据类型通常是java采用的默认选择。

传递值为..10.1201f..即'最后的f。,默认情况下,它是双精度的。我相信这取决于编译器如何处理数字。在这种情况下,您可以使用
10.1201f
,它告诉编译器将值视为
float
,而不是
double
,否则您可以像getValue((float)12.36565)一样强制转换;