import java.util.Scanner;
public class 圆周长 { public static void main(String[] args) {
System.out.println("输入圆的半径"); Scanner sc= new Scanner(System.in);
int x = sc.nextInt();

System.out.println("圆周长为"+2*3.14*x);
}
}
这个程序我输入5时 本来应该输出31.4 但是结果却是
31.400000000000002
为什么啊 详细解释一下 谢谢 求助~

解决方案 »

  1.   

    System.out.println("输入圆的半径"); Scanner sc= new Scanner(System.in);
    int x = sc.nextInt();
    double result = 2*3.14*x;
    System.out.println("圆周长为"+NumberFormat.getInstance().format(result));
      

  2.   

    double类型 不是精确的存储的
      

  3.   

    可以用printf方法进行控制,类似C语言的printf函数,可以控制输出数字的位数,