zoukankan      html  css  js  c++  java
  • 【转】Java保留固定小数位的4种方法

    package com.test;
    
    import java.math.BigDecimal;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    public class Main {
        /**
         * 测试用例为保留8位
         * */
        double f = 1234.1234567898789;
        /**
         * 由于 BigDecimal 对象是不可变的,此方法的调用不会 导致初始对象被修改;
         * newScale - 要返回的 BigDecimal 值的标度;
         * roundingMode - 要应用的舍入模式;
         * ROUND_HALF_UP 舍入模式为四舍五入;
         * */
        public void method_01() {
            BigDecimal bg = new BigDecimal(f);
            double f1 = bg.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println(f1);
        }
        /**
         * DecimalFormat转换最简便
         */
        public void method_02() {
            DecimalFormat df = new DecimalFormat("#.00000000");
            System.out.println(df.format(f));
        }
        /**
         * String.format打印最简便
         */
        public void method_03() {
            System.out.println(String.format("%.8f", f));
        }
        public void method_04() {
            NumberFormat nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(8);
            System.out.println(nf.format(f));
        }
        public static void main(String[] args) {
            Main test = new Main();
            test.method_01();
            test.method_02();
            test.method_03();
            test.method_04();
        }
    }
    结果:
    1234.12345679 1234.12345679 1234.12345679 1,234.12345679
  • 相关阅读:
    简单的测试用例计划放法
    黑盒测试用例设计方法-等价类划分
    Redis净化板
    爬虫部署与Django
    怎样实现前端的优化
    关于Apache简介笔记
    yield生成器的经典案例
    石头剪刀布
    函数内是否可以修改传递进来的列表
    不定长参数的传递
  • 原文地址:https://www.cnblogs.com/Richard-xie/p/3403438.html
Copyright © 2011-2022 走看看