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;
    }

    雪人正在努力……
  • 相关阅读:
    C++基础学习6:内联函数
    lvm
    yum源
    mysql性能优化
    PXE
    dns配置
    进程命令
    ssh免密登陆和加密解密
    RAID阵列
    快速部署postfix邮件服务器
  • 原文地址:https://www.cnblogs.com/nunuAction/p/5853953.html
Copyright © 2011-2022 走看看