我不知道如何使用Java进行浮动

Mil*_*les 5 java casting

我正在将一些代码从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)