Java数字除法



下面是代码,当我除以5/6时,它显示的输出是0.0而不是0.8333。

package sunday;
import java.util.Scanner;
public class exception {
    public static void main(String[] args) {
        int donut,milk;
        double donutperglass;
        Scanner in=new Scanner(System.in);
        try{
            System.out.println("enter donut");
            donut=in.nextInt();
            System.out.println("enter milk");
            milk=in.nextInt();
            if(milk<1)
                throw new Exception("no milk");
            donutperglass=donut/milk;
            System.out.println(donutperglass);
        }catch(Exception e){
            System.out.println(e.getMessage());
            System.out.println("go buy some milk");
        }
        System.out.println("end");
        // TODO Auto-generated method stub    
    }    
}

donutmilk的数据类型改为double

返回双精度值,而不是int。

详情请参阅此问题

整数除法:如何产生双精度数?

如果想要dounutperglass除法后的双类型,也可以将donutmilk声明为双类型

数据类型改为double

原因:int不能保存浮点值

int/int只给出int。将甜甜圈和牛奶的数据类型改为double。

double/double给出了确切的结果

必须将其中一个术语强制转换为浮点数,而不是整型。

示例:

donutperglass=((double) donut)/milk;

最新更新