zoukankan      html  css  js  c++  java
  • 数字格式化NumberFormat

    做财务的同学遇到逗号分隔的数值格式,会用到NumberFormat类格式化数据

    BigDecimal bigDecimal = new BigDecimal("1000000000.4110001");
    NumberFormat instance = NumberFormat.getInstance(Locale.US);

    System.out.println(instance.format(bigDecimal));

    非常简便,但是会失去精度,得到的结果是:1,000,000,000.411,如果这样足够项目里的场景就可以了,下面介绍一种方法可以保留精度的格式数据。

    private String parseMoney(String str) {
    String num = "";
    String decimalNum = "";
    StringBuffer ret = new StringBuffer();
    if (str.contains(".")) {
    String[] temp = str.split("\.");
    num = temp[0];
    decimalNum = temp[1];
    } else {
    num = str;
    }

    if (num.length() > 3) {
    for (int i = num.length() - 1; i >= 0; i--) {
    ret.append(num.charAt(i));
    if ((num.length() - i) % 3 == 0) {
    ret.append(",");
    }
    }

    return ret.reverse().toString() + "." + decimalNum;
    }
    return str;
    }

    雪人正在努力……
  • 相关阅读:
    web 开发之酷炫--- 酷炫展示
    攻城狮的体检
    科技发烧友之智能路由
    科技发烧友之3d吉米投影
    科技发烧友之单反佳能700d中高端
    上海
    视频会议
    机器学习之信息
    filter
    centos 20T硬盘(超过16T)分区
  • 原文地址:https://www.cnblogs.com/nunuAction/p/5853953.html
Copyright © 2011-2022 走看看