一个应该打印数字的代码(如4.9)将打印4.8888888889。为什么?

时间:2019-10-01 12:11:50

标签: java

我已经开始学习如何使用Java进行编程,而且我已经掌握了基本知识。我使用BlueJ。我想编写一个程序,我可以将double检验加入其中,将其除以10,它将给出整数的答案。然后,我想通过给定的原始数减去得到的整数来更改给定的veriable。我将代码放在这里。

这是问题所在。 如果我输入数字34.25 它会输出 3 4.25 一切都很好 但是,如果我输入34.9,它会打印 3 4.899999999999999,而不是4.9 如果我输入34.15,同样会令人沮丧。它打印 3 4.149999999999999

为什么会发生这种情况?我想念什么?

非常感谢您的时间!

import java.util.Scanner;

public class Test
{
     public static void main(String[] args)
     {
       double Distance;
       Scanner scan = new Scanner (System.in);
       Distance = scan.nextDouble();
       int tenM = (int)Distance/10;
       Distance = Distance - tenM*10;
       System.out.println(tenM);
       System.out.println(Distance);
    }
}

0 个答案:

没有答案