我有以下代码片段:
public class YourClassNameHere {
public static void main(String[] args) {
double x = 3 / 2 * 3;
System.out.printf("%.1f", x);
}
}
我知道3.0将被打印出来。然而,为什么它不是4.5?
感谢您的时间和事先的澄清。
您的方程是double x = 3 / 2 * 3
和x
变量是存储双数据类型,但3
和2
和3
是存储在整数格式…
首先你需要将这个数字转换成双精度,然后你会得到正确的输出
的例子:
public class YourClassNameHere {
public static void main(String[] args) {
double a = 3;
double b = 2;
double c = 3;
double x = a / b * c;
System.out.printf("%.1f", x);
}
}
我建议你必须使用适当的括号来减少错误double x = (3/2)*3
32
给出一个整型值,即1
如果要让它变成双精度值,就必须输入(32.0)
它给出双精度值,即1.5
然后是1.5 * 3 = 4.5
因为你使用的是整数,它将返回整数。要得到想要的结果,只需添加"f"表示数字为浮点数的后缀:
double x = 3f / 2f * 3f;
刚刚明白,这是因为3/2 = 1,然后1*3变成3。谢谢大家的回复!