【JAVA基础】输出double类型保留两位小数

您所在的位置:网站首页 double类型变量输出格式 【JAVA基础】输出double类型保留两位小数

【JAVA基础】输出double类型保留两位小数

2023-11-22 18:56| 来源: 网络整理| 查看: 265

已知 双精度标量 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\n",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

import java.math.BigDecimal; /**  * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精  * 确的浮点数运算,包括加减乘除和四舍五入。  */ public class Arith{     //默认除法运算精度     private static final int DEF_DIV_SCALE = 10;     //这个类不能实例化     private Arith(){     }       /**      * 提供精确的加法运算。      * @param v1 被加数      * @param v2 加数      * @return 两个参数的和      */     public static double add(double v1,double v2){         BigDecimal b1 = new BigDecimal(Double.toString(v1));         BigDecimal b2 = new BigDecimal(Double.toString(v2));         return b1.add(b2).doubleValue();     }     /**      * 提供精确的减法运算。      * @param v1 被减数      * @param v2 减数      * @return 两个参数的差      */     public static double sub(double v1,double v2){         BigDecimal b1 = new BigDecimal(Double.toString(v1));         BigDecimal b2 = new BigDecimal(Double.toString(v2));         return b1.subtract(b2).doubleValue();     }      /**      * 提供精确的乘法运算。      * @param v1 被乘数      * @param v2 乘数      * @return 两个参数的积      */     public static double mul(double v1,double v2){         BigDecimal b1 = new BigDecimal(Double.toString(v1));         BigDecimal b2 = new BigDecimal(Double.toString(v2));         return b1.multiply(b2).doubleValue();     }       /**      * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到      * 小数点以后10位,以后的数字四舍五入。      * @param v1 被除数      * @param v2 除数      * @return 两个参数的商      */     public static double div(double v1,double v2){         return div(v1,v2,DEF_DIV_SCALE);     }       /**      * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指      * 定精度,以后的数字四舍五入。      * @param v1 被除数      * @param v2 除数      * @param scale 表示表示需要精确到小数点以后几位。      * @return 两个参数的商      */     public static double div(double v1,double v2,int scale){         if(scale


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3