【发布时间】:2019-03-03 02:32:10
【问题描述】:
今天,我定义了两个浮点变量f1和f2。然后我执行加法“+”算术运算并分配给浮点变量f。
float f1 = 0.5048076923076923F;
float f2 = 0.5048076923076923F;
float f = f1 + f2;
根据这张图,算术运算中的所有浮点值(float 和 double)( +, -, *, /) 转换为 double 类型:
图片来源:http://www.mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/mixed.html
我发现了一个相同的问题,但没有解释原因。为什么eclipse没有任何问题提示?难道是"f1 + f2"的值是float类型的原因吗?而且,如果像上图所说的那样,为什么Java会自动将double类型转换为float类型?
PS:英语不是我的母语,如果这个问题有语法问题,请原谅我。谢谢。 :)
【问题讨论】:
-
两个
float(s) 相加的结果是float。据我所知,float(s) 在算术之前没有扩大到double。这种说法没有任何意义。 -
可能是他只是复制粘贴了一个双精度文本而忘记修改它。
-
可能我表达的不是很清楚,但是Stephen C的回答已经解决了这个问题。我之前的想法是两个浮点数将转换为双精度类型。感谢您的帮助。 :D