下面是代码,当我除以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
}
}
将donut
和milk
的数据类型改为double
返回双精度值,而不是int。
详情请参阅此问题
整数除法:如何产生双精度数?
如果想要dounutperglass
除法后的双类型,也可以将donut
和milk
声明为双类型
数据类型改为double
原因:int不能保存浮点值
int/int只给出int。将甜甜圈和牛奶的数据类型改为double。
double/double给出了确切的结果
必须将其中一个术语强制转换为浮点数,而不是整型。
示例:
donutperglass=((double) donut)/milk;