Java中处理大额数字千分位显示(可能带小数点)

22 阅读1分钟

    public static void main(String[] args) {
        // 正负数都适用以及含小数点
        String price = "898918989.22";
        StringBuffer sb = new StringBuffer(price);
        int end = 0;
        if (price.contains("-") {
            end = 1;
        }
        int index = sb.lastIndexOf(".");
        if (index != -1) {
            for (int i = index - 3; i > end; i -= 3) {
                sb = sb.insert(i, ",");
            }
        } else {
            for (int i = price.length() - 3; i > end; i -= 3) {
                sb = sb.insert(i, ",");
            }
        }
        System.out.println("sb=" + sb);
        
        // 利用正则表达式匹配规则-只适合整数
        String pri = price.replaceAll("(\\d)(?=(\\d{3})+$)", "$1,");
        System.out.println("pri=" + pri);
    }