除数

one*_*eoe 2 java math

在 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

Ous*_* D. 6

当我用 73/27 运行这个时,我得到答案 2.0,但我想要得到的是答案 2.7

之所以得到意外结果,是因为当您除以整数时,结果始终是整数,这意味着小数点后的任何数字都会被截断。

nr1 / nr2 // <-- this part within the calculation is causing the problem.
Run Code Online (Sandbox Code Playgroud)

您可以用来克服该问题的一个简单技巧是将其中一个整数nr1nr21.0第一个相乘,这应该会产生一个双精度数,这应该允许您保持精度,因为您现在除以而double不是除以int

例子:

System.out.println(Math.round((1.0 * nr1) / nr2 * 10.0)/10.0);
Run Code Online (Sandbox Code Playgroud)

注意1.0