我正在将一些代码从Processing转移到Java,我遇到的一个问题是处理的预编译器将任何双精度转换为浮点数.但是在Eclipse中,我必须显式地将我的值转换为float.尽管如此,我还是得到了一些我不理解的错误.例如,不应该在此语句的末尾添加一个f来修复类型不匹配(类型不匹配:无法从double转换为float)?
springing[n] = .05*(.17*(n+1))f;
Run Code Online (Sandbox Code Playgroud)
即使是像这样简单的陈述,我也会遇到类型不匹配的问题.我究竟做错了什么?
float theta = .01f;
Run Code Online (Sandbox Code Playgroud)
don*_*ton 11
嗯,你的第二个陈述是正确的Java标准,但在你的第一个例子中,Java可能试图阻止你将双精度转换为浮点数,因为程序员必须明确要求精度损失,如下所示:
double a = //some double;
float b = (float) a; //b will lose some of a's precision
Run Code Online (Sandbox Code Playgroud)