当前位置: 首页 > 面试题库 >

我的Java程序中“可能会失去精度”

濮阳旭东
2023-03-14
问题内容

我是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;

声明ddouble作为格雷厄姆建议。



 类似资料:
  • 问题内容: 下面给出测试代码及其输出。当我从数字值中获得浮点值时,精度就会丢失..谁能告诉我为什么这种行为以及如何处理呢? 输出: 还为什么float值小于Float.MAX_VALUE? 问题答案: 我爱这些。但我会使其快速而轻松地进行。 浮点数和小数(也称为浮点数)也不会精确地保留在内存中。但我不想在这里涉及浮点精度与精度问题,我只将您指向一个链接-http: //www.cygnus- so

  • 问题内容: 我的代码是 编译时出现以下错误 但是,当我使用它代替它成功编译时,那么我的问题是,当所有3个变量(即a,b和c)都是字节数据类型时,为什么需要强制转换? 问题答案: ,此处的运算符将返回,这就是您需要使用强制转换的原因。

  • 问题陈述: 编写一个方法whatTime,它采用int,seconds,表示从某一天午夜开始的秒数,并返回一个格式为“:”的字符串。此处,表示自午夜以来的完整小时数,表示自上一完整小时结束以来的完整分钟数,以及自上一完整分钟结束以来的秒数。和中的每一个都应该是整数,没有额外的前导0。因此,如果秒为0,则应返回“0:0:0”,而如果秒为3661,则应返回“1:1:1” 我的算法: 以下是我的算法对输

  • 问题内容: 我有一个关于精度损失的问题 我的任务是将数字打印为字符串 例如0.2 * 7 = 1.4000000000000001; 0.0000014 / 10 = 1.3999999999999998E-7 如何解决这个问题? UPD :主要问题是 字符串 输出格式。我不担心丢失约0.00000001的值。现在,我将其解析为String.format(“%f”,value),但我认为这不是一个

  • 我是Java卡的新手,我正在做一个项目,我需要PIN安全智能卡用于医疗保健项目。我想知道的是,如果我可以加载我的Java卡应用程序在非Java智能卡(我试图避免昂贵的成本,可以选择40美元或更多/1卡)?如果可能的话,我想知道一些关于如何区分卡片并获得它们的技术细节(类型、内存、联系/非接触等)的技巧。

  • Java指令重排序不影响单线程下执行结果。那么比如main线程里有 System.out.println("1"); System.out.println("2"); 这两句话会重排导致输出21吗?这里似乎没有数据依赖? 无