Правильное решение раундов рано. Вот код, предложенный моим первоначальным комментарием :
double kgs = 83.456;
long pounds = Math.round(kgs*2.204622);
System.out.println("Your weight is " + pounds / 14 + " stone and " + pounds % 14 + " pounds");
Вывод
Your weight is 13 stone and 2 pounds
Если вместо этого вы используете 69,853 кг, вы получите
Your weight is 11 stone and 0 pounds
, но это то, где дело может оказаться рискованным, если вы не округлились раньше.
Оба решения в (в настоящее время приняты) Ответ молнии неверен, так как они округляются в неподходящее время. Есть причина, по которой вы должны округлить досрочно.
Если вы перейдете на использование 69,853 кг в этих двух решениях, вы получите
Solution 1:
Stone: 10
Pounds: 14
Solution 2:
Stone: 10
Pounds: 14.0
Оба, очевидно, неверны, поскольку Pounds
не должнобыть 14, иначе 1 камень.
Причина ошибок округления становится очевидной, если вы печатаете значения без округления
double kgs = 69.853;
double pounds = kgs*2.204622;
System.out.println(pounds + " lbs = " + pounds / 14 + " stone and " + pounds % 14 + " pounds");
Вывод
153.99946056599998 lbs = 10.999961468999999 stone and 13.999460565999982 pounds