如何把Java的double类型变量保留两位小数

已知 双精度标量 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

参考网页:

http://www.jb51.net/article/46010.htm

原文地址:https://www.cnblogs.com/telwanggs/p/11169412.html