public static String convertGramsToPoundsAndOunces(String grams) {
double weightInKG = Double.parseDouble(grams) / 1000;
double pounds = weightInKG / 0.45359237;
double lbs = Math.floor(pounds);
double fraction = (pounds - lbs) * 16;
return String.valueOf(Math.round(lbs) + "lbs" + " " + String.format("%.1f", new BigDecimal(fraction)) + "oz");
}
从服务中我得到305lb 0.050469oz
,但是当它被转换为显示305lbs 0.1oz
时,它应该只显示305磅。
答案 0 :(得分:0)
String.format()
四舍五入不是OP预期,但是正确。
String.format("%.1f", ...
正确将0.050469
转换为"0.1"
。格式指向舍入到最接近的0.1,0.050469比任何其他十分之一更接近0.1。
如果OP想要一个不同的舍入模式,可以更直接地将克直接转换为盎司oz = gr*(1/1000.0/0.45359237*16.0)
,根据需要进行舍入,然后分成磅和磅。盎司。此外,这将有助于消极grams
,但未正确转换。
Math.round(lbs)
可能不需要lbs = Math.floor(pounds)
。
注意:
0.45359237是正确的精确转换因子
grams
输入类似于“138347.10362”。