已知 双精度标量 f, 如果想以字符串形式输出,小数点后保留2位,可直接通过C语言的输出格式,System.out.printf("%.2f", f), 达到目的。
如果想要先转变成小数点后保留2位的双精度变量,然后再输出,可以尝试用 f 作参数,创建一个 BigDecimal 对象 b,再 调用 BigDeciaml 对象的 setScale 方法,以取得另一个 小数点后2位的新对象,最后,通过这个新对象,调用 方法:doubleValue(), 以取得双精度变量 f1. 最后,再输出 f1。
import java.math.*;
public class A {
public static void main(String args[]) {
double f = 111231.558564;
System.out.printf("直接将双精度的变量 f, 按C语言的输出格式输出:%.2f
",f);
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("f1 是小数点后只有两位的双精度类型数据:" + f1); // f1 是双精度类型
}
}
输出是:
直接将双精度的变量 f, 按C语言的输出格式输出:111231.56
f1 是小数点后只有两位的双精度类型数据:111231.56
参考网页: