java - 我的 Java 程序中的 "Possible loss of precision"

标签 java

我是 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:possible loss of precision
                                   found           :double
                                   required        :float
                                   d=((u*t)+a*Math.pow(t,x))/2F;
                                                            ^

我该如何解决?

最佳答案

d=((u*t)+a*Math.pow(t,x))/2F;

应该是

d=(float)((u*t)+a*Math.pow(t,x))/2F;

或将 d 声明为 doubleGrahamS建议。

关于java - 我的 Java 程序中的 "Possible loss of precision",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5603223/

相关文章:

java - Android 从耳机/USB 插孔发送/接收字节?

java - 设置流时出现eofexception

Java自定义按钮paintComponent不会重新绘制默认按钮背景

java - 如何以正确的方式动态处理开始和结束线程和信息?

java - Vaadin 中图表配置的序列化

java.lang.UnsatisfiedLinkError : lsxbe (Not found in java. 库路径)

java - 将 2D ArrayList<String> 转换为 2D 字符串数组

java - 无法处理二维对象数组

java - 为什么字体名称没有改变? (Java FX)

java - 在 JBoss 5.1 中的队列中查找 JMS 消息的简单 Web 应用程序