我是Java新手。我写了以下代码:
import java.io.*; import java.lang.*; public class distravel { public static void main(String args[]) { String a1,a2,a3; int x=2; float d,u,a,t; //d=distance travelled,u=initial velocity,a=acceleration,t=timeinterval try { InputStreamReader read=new InputStreamReader(System.in); BufferedReader buff=new BufferedReader(read); System.out.print("Enter the INTIAL VELOCITY:"); a1=buff.readLine(); u=Float.parseFloat(a1); System.out.print("Enter the ACCELERATION:"); a2=buff.readLine(); a=Float.parseFloat(a2); System.out.print("Enter the TIME:"); a3=buff.readLine(); t=Float.parseFloat(a3); d=((u*t)+a*Math.pow(t,x))/2F; System.out.print("The total DISTANCE TRAVELLED:"+d); } catch(Exception e) {} } }
我收到此错误:
distravel.java28:可能的精度损失 发现:双 必需的:浮动的 d =(((u * t)+ a * Math.pow(t,x))/ 2F; ^
我该如何解决?
d=((ut)+aMath.pow(t,x))/2F;
应该
d=(float)((u*t)+a*Math.pow(t,x))/2F;
或声明d为double作为格雷厄姆建议。
d
double