Java中double保留2位小数(精度丢失)的两种方式

在我们日常开发中,使用double数据类型进行计算,偶尔会出现精度丢失的情况,例如实际结果是0.75,就可能出现0.7500000000000001或0.7499999999999999。这边介绍两种方式(四舍五入)保留2位小数,可以满足开发中处理double精度丢失的大部分需求。

方式一:使用round函数(同理:保留4位的话就是10000)

		Double d = 3.141592653589;
        double d1 = (double) Math.round(d * 100) / 100;
        System.out.println(d1); //3.14

方式二:使用DecimalFormat函数(这个的返回值是String)

		Double d = 3.141592653589;
		DecimalFormat df = new DecimalFormat("######0.00");
        String s = df.format(d);
        double d2 = Double.valueOf(s);
        System.out.println(s); //"3.14"
        System.out.println(d2); //3.14

总结:可以按照自己的需求选择任意方式,方式一更灵活点,方式二可以直接得到字符串类型的结果

猜你喜欢

转载自blog.csdn.net/weixin_50989469/article/details/126622262