我尝试制作一个小程序,可以来回转换里程数,但每当数字有4位数时,程序会立即冻结
部分代码:
private double KmToMiles(double inputValue) {
return(inputValue * 1.609344);
}
private double MilesToKm(double inputValue) {
return(inputValue * 0.621372);
}
也
double inputValue = Double.parseDouble(text.getText().toString());
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
text.setText(String.valueOf(nf.format(KmToMiles(inputValue))));
text.setText(String.valueOf(nf.format(MilesToKm(inputValue))));
jednotka.setText("kilometers");
km.setChecked(false);
如何使返回的值具有少量小数而不检索错误?如果我用整数交换双倍并删除数字格式,我得到没有错误,但转换是不准确的,没有小数。使用没有NF的双打我得到太多小数
答案 0 :(得分:1)
您可以使用String.Format
中的String class
来指定所需的小数位数。
<强>样品:强>
String s = String.format("%.4f", KmToMiles(25)) //.4f means round it to 4 decimal places
text.setText(s);
现在这将导致40.2336
如果您希望它为2位小数,只需将修改器更改为%.2f