Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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_Arrays_Floating Point - Fatal编程技术网

Java 铸造浮子阵列

Java 铸造浮子阵列,java,arrays,floating-point,Java,Arrays,Floating Point,我写Java已经有一段时间了,甚至开始教别人。我发现很难向一个新学生解释为什么必须铸造浮点数组的值。例如: float[] someArray = {(float) 23.23, (float) 123.1, (float) 123.1}; int[] intArray = {12, 13, 4, 5}; double[] doubleArray = {22.12, 23.1, 12.1}; 我猜包含小数的值只被视为双精度而不是浮点数,因此需要强制转换。Java选择这种方式的原因是什么?编

我写Java已经有一段时间了,甚至开始教别人。我发现很难向一个新学生解释为什么必须铸造浮点数组的值。例如:

float[] someArray = {(float) 23.23, (float) 123.1, (float) 123.1};  
int[] intArray = {12, 13, 4, 5};
double[] doubleArray = {22.12, 23.1, 12.1};

我猜包含小数的值只被视为双精度而不是浮点数,因此需要强制转换。Java选择这种方式的原因是什么?编译器不能也认为因为它是一个浮点数组,所以它将接受浮点值吗

在Java中,带小数点的数字被隐式处理为
double
。例如,您可以简单地编写
23.23F
,而不是强制转换为浮点。最后的
F
告诉编译器将该值视为
float
literal。

float F=23.23fdouble
,因此,如果要使用浮点值,则必须指定浮点值。要么像你一样通过演员阵容,要么像吓人的袋熊建议的那样通过浮标文字。编译器可以假定您的意思是
浮点
,但这可能不是您想要的,因此会出现警告/错误。与从较宽的整数类型转换为较窄的整数类型不同,从
双精度
浮点
的转换可以更改值,因为
双精度
值必须四舍五入以适应
浮点
精度。因此,我假设Java设计人员不允许隐式的
double
float
转换,以避免在没有程序员明确请求的情况下更改值。赋值所允许的转换的具体规则是,但我对Java规范还不够熟悉,无法很容易地解释它,并且……说这些规则是否是管理您所询问的特定代码的特定规则。