黑马程序员技术交流社区

标题: 为啥我两次输出的结果不一样呢? [打印本页]

作者: bianzhiguo6    时间: 2015-3-19 16:03
标题: 为啥我两次输出的结果不一样呢?
import java.util.Scanner;            //声明包
public class Test{                   //声明类
   public static void main (String[]args){//主方法
    Scanner scan = new Scanner(System.in);//扫描器
   System.out.println("请输入球的半径:");
    double r = scan.nextDouble();//接收数据
    final double PI = 3.1415926;           //定义常量PI
    double v = 4.0/3.0*PI*r*r*r;               //公式计算
   System.out.println("球的半径是:"+r);     //输出半径
   System.out.println("球的体积是:"+v);    //输出体积
    }
}
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/395417020/QQ/WinTemp/RichOle/JVRX~9%7B%60@4%7B3NDMDZKV]LPW.png
————————————————————————————————————————————————————————————————————
import java.util.Scanner;            //声明包
public class Test{                   //声明类
   public static void main (String[]args){//主方法
    Scanner scan = new Scanner(System.in);//扫描器
   System.out.println("请输入球的半径:");
    double r = scan.nextDouble();//接收数据
    final double PI = 3.1415926;           //定义常量PI
    double v = 4/3*PI*r*r*r;               //公式计算
   System.out.println("球的半径是:"+r);     //输出半径
   System.out.println("球的体积是:"+v);    //输出体积
    }
}
[img]file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/395417020/QQ/WinTemp/RichOle/4[D$%7BK7QB_UC)HM%7BQ)8MW~B.png[/img]













作者: Grady    时间: 2015-3-19 20:28
因为double类型和int类型的区别。当4/3的时候结果是1.当4.0/3.0的时候结果是1.333333...
作者: Mr.南郭    时间: 2015-3-19 21:03
楼上正解,3和4默认为int类型,则3/4的结果为1,而3.0和4.0默认为double类型,则3.0/4.0结果为1.33333.....算出的结果就不同了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2