本题并不难注意点是保留6位有效数字
BigDecimal m = new BigDecimal(String.valueOf(a/b));
BigDecimal divisor = BigDecimal.ONE;
MathContext mc = new MathContext(6);
System.out.println(m.divide(divisor, mc));
这是java中保留六位有效数字的办法
分清小数点后六位和六位有效数字的区别
这个是源码简单求出BMI
最上面图中的是保留小数点后六位
System.out.printf("%.6f",a);这个是保留小数点后六位的办法要和保留六位有效数字区分开
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
double m = sc.nextDouble();
double h = sc.nextDouble();
double c ,d;
c = h * h;
d = m/c ;
if (d < 18.5) {
System.out.println("Underweight");
}
if (d >= 18.5 && d <= 24 )
{
System.out.println("Normal");
}
if (d>24){
BigDecimal a =new BigDecimal(String.valueOf(d));
BigDecimal divisor = BigDecimal.ONE;
MathContext mc = new MathContext(6);
System.out.println(a.divide(divisor, mc));
System.out.println("Overweight");
}
}
}