在 Java 中使用算术运算符对两个数字进行除法。
Scanner scan = new Scanner(System.in);
System.out.print("Write a number: ");
String mataett = scan.next();
System.out.print("Write a number: ");
String matatva = scan.next();
int nr1 = Integer.parseInt(mataett);
int nr2 = Integer.parseInt(matatva);
System.out.println(Math.round(nr1 / nr2*10.0)/10.0);
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,73/27
我得到了答案2.0
,但我想要得到的是答案2.7
当我用 73/27 运行这个时,我得到答案 2.0,但我想要得到的是答案 2.7
之所以得到意外结果,是因为当您除以整数时,结果始终是整数,这意味着小数点后的任何数字都会被截断。
nr1 / nr2 // <-- this part within the calculation is causing the problem.
Run Code Online (Sandbox Code Playgroud)
您可以用来克服该问题的一个简单技巧是将其中一个整数nr1
或nr2
与1.0
第一个相乘,这应该会产生一个双精度数,这应该允许您保持精度,因为您现在除以而double
不是除以int
。
例子:
System.out.println(Math.round((1.0 * nr1) / nr2 * 10.0)/10.0);
Run Code Online (Sandbox Code Playgroud)
注意1.0