我想编写一个方法将用户的BMI(浮点数)四舍五入到一位数,逻辑是否正确以及如何在android Java中编写它?
private static final DecimalFormat oneDigit = new DecimalFormat("#,##0.0");
public static float roundToOneDigit(float paramFloat)
{
float f = Float.valueOf(oneDigit.format(paramFloat)).floatValue();
f=f;
return f;
}
答案 0 :(得分:4)
试试这个:
public static String roundToOneDigit(float paramFloat) {
return String.format("%.1f%n", paramFloat);
}
答案 1 :(得分:2)
假设这是为了向用户显示值:
private static final DecimalFormat oneDecimal = new DecimalFormat("#,##0.0");
public static String formatBmi(double bmi) {
return oneDecimal.format(bmi);
}
一些变化:
如果从多个线程同时调用此方法,静态DecimalFormat
将会中断,因为它不是线程安全的。在这种情况下,您可能想测试在每个方法调用上创建一个新方法是否足够快。
查看Caner's answers,更短,本质上是线程安全的。