private static DecimalFormat df = new DecimalFormat("0.00");
public static void main(String[] args) {
double input = 300.00;
System.out.println("double : " + input);
Double d=Double.valueOf(df.format(input));
System.out.println("##1::"+d);
System.out.println("##2 ::"+df.format(input));
System.out.println("##3 ::"+Double.valueOf(df.format(input)));
}
}
产出。
double : 300.0
##1::300.0
##2 ::300.00
##3 ::300.0
预期的输出。300.00
你可以使用BigDecimal来实现双数的缩放和四舍五入。试试这个。
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Test {
public static void main(String[] args) {
BigDecimal input = BigDecimal.valueOf(300);
System.out.println("double 2 digit: " + Test.round(input, 2));
System.out.println("double 5 digit: " + Test.round(input, 5));
}
public static BigDecimal round(BigDecimal bd, int scale) {
return bd.setScale(scale, RoundingMode.HALF_UP);
}
}
像这样输出。
double 2 digit: 300.00
double 5 digit: 300.00000