美文网首页
小数格式处理

小数格式处理

作者: 繁星追逐 | 来源:发表于2019-08-03 19:46 被阅读0次

主要记的是一个类 DecimalFormat ,
DecimalFormat是NumberFormat一个具体的子类,主要是格式化十进制数。它有各种各样的设计用于解析和格式化数字中的数字的特性区域设置,包括整数(123)、固定点编号(123.4)、科学记数法(1.23E4)、百分比(12%)和货币金额(123美元)等。

public static void main(String[] args) {
        double a = 66.666666666666;
        DecimalFormat format = new DecimalFormat("0.000000");
        DecimalFormat format1 = new DecimalFormat();
        format1.setMaximumFractionDigits(6);
        System.out.println(format.format(a));
        System.out.println(format1.format(a));
    }


/**
     * 获取格式化的double数的字符串
     * 
     * 直接截取数值 不四舍五入
     * 
     * @param num  需要被格式化的数   
     * @param sample 具体样式
     *      sample="0.00元";             效果 :    2018.99元;
     *      sample="(万元)0.00";         效果 :     (万元)2018.99;
     *      sample="0.00¥";             效果 :    2018.99¥;
     *      sample="¥0.00";             效果 :    ¥2018.99;
     *      sample="0.00%";             效果 :    201899.00%; (自动乘以100)
     * @return 格式化后的字符串
     */
    public static String getDoubleFormat(double num, String sample){
        DecimalFormat df=new DecimalFormat(sample);
        df.setGroupingSize(0);
        df.setRoundingMode(RoundingMode.DOWN);
        return df.format(num);
    }

    //百分比 和 金额数值 打印
    System.out.println(getDoubleFormat(0.99989,"0.00%"));//打印结果: 99.98%,自动乘以100
    System.out.println(getDoubleFormat(1,"0.00%"));//打印结果: 100.00%,自动乘以100
    System.out.println(getDoubleFormat(1.2577,"0.00 万元"));//打印结果: 1.25 万元
    System.out.println(getDoubleFormat(12577,"0.00 元"));//打印结果: 12577.00 元
    System.out.println(getDoubleFormat(12577,"¥ 0.00"));//打印结果: ¥ 12577.00
/**
     * 获取带位分隔格式化的double数的字符串
     * (带位分隔的就比较麻烦点了)
     * 
     * 直接截取数值 不四舍五入
     * 
     * @param num 需要被格式化的数   
     * @param groupingSize 需要几位整数分隔
     * @param fractionDigits 需要保留几位小数
     * @param suffix 后缀字符
     * @return 格式化后的字符串
     */
    public static String getGroupingFormat(double num,int groupingSize, int fractionDigits,String suffix){
        DecimalFormat df=new DecimalFormat();
        df.setMaximumFractionDigits(fractionDigits);
        df.setMinimumFractionDigits(fractionDigits);
        df.setGroupingSize(groupingSize);
        df.setPositiveSuffix(suffix);
        df.setNegativeSuffix(suffix);
        df.setRoundingMode(RoundingMode.DOWN);
        return df.format(num);
    }

    System.out.println(getGroupingFormat(12577,3,2," 元"));//打印结果: 12,577.00 元
    System.out.println(getGroupingFormat(12577.998,3,2," 元"));//打印结果: 12,577.99 元
    System.out.println(getGroupingFormat(177.998,3,2," ¥"));//打印结果: 177.99 ¥


    //最多保留几位
    df.setMaximumFractionDigits(6);
    //最少保留几位, 可以是0 就是 取整数
    df.setMinimumFractionDigits(2);

相关文章

  • 小数格式处理

    主要记的是一个类 DecimalFormat ,DecimalFormat是NumberFormat一个具体的子类...

  • Angular 小数管道符

    number管道用来将数字处理为需要的小数格式 接收的参数格式为:{最少整数位数}.{最少小数位数}-{最多小数位...

  • 数字格式的处理(R,Excel)

    科学计数法 R 小数点前后一共3个数字 Excel 设置单元格格式 保留几位小数 R 保留两位小数 简单高效滴处理...

  • 格式化字符串

    目录:1、补齐两位小数2、金额字符串处理3、设置卡号的显示格式 1、补齐传入字符串(string)小数点后两位,返...

  • 解决格式化double小数点变成逗号问题

    解决格式化double小数点变成逗号问题 数字格式化 我们通过下面的方法来对数字进行格式化,获取小数点后三位的小数...

  • 格式化输出

    格式化输出 描述 用户输入一个小数,用format格式化输出,保留3位小数。 输入格式 输入一个数 输出格式 保留...

  • python中保留两位小数的方法

    情况一:保留两位小数,并做四舍五入处理1、使用字符串格式化 2、使用round内置函数 情况二:保留两位小数,无需...

  • 数字的格式化

    传入的数字,小数点后面2位及以下保留2位,3位保留3位,4位及以上保留4位的数据处理 小数点左侧的格式化代码

  • 小数处理

    //保留两位小数,四舍五入 CGFloat rounded_up = round(0.355 * 100) / 1...

  • 05_MySQL数据库avg小数保留一位

    ROUND(33.33,1):格式 `ROUND(double小数,要保留小数个数) 使用ROUND后:

网友评论

      本文标题:小数格式处理

      本文链接:https://www.haomeiwen.com/subject/allsdctx.html