【发布时间】:2016-01-04 11:37:57
【问题描述】:
我是 Java 新手,正在尝试学习 int 和 double 的基本概念。谁能告诉我,当我运行程序时,为什么会打印出 0.0 而不是 0.3333333?
int i = 1;
int j = 3;
double k = i / j;
System.out.println(k);
【问题讨论】:
我是 Java 新手,正在尝试学习 int 和 double 的基本概念。谁能告诉我,当我运行程序时,为什么会打印出 0.0 而不是 0.3333333?
int i = 1;
int j = 3;
double k = i / j;
System.out.println(k);
【问题讨论】:
因为你正在做整数除法,这会将结果截断为整数。
您需要将其中一个转换为双倍。
double k = i / (double)j;
【讨论】:
您不能将两个整数相除并期望得到一个双精度数。
将它们声明为doubles 以开始或转换它们。
double k = (double)i / (double)j
//or
double i = 1;
double j = 3;
double k = i / j;
【讨论】:
改变
double k = i / j;
到
double k = (double)i / (double)j;
您需要将其中一个操作数强制转换为double,然后再将它们分开。
【讨论】: