java - java中的数字格式使用Lakh格式而不是百万格式

我尝试过使用 NumberFormatDecimalFormat。即使我使用的是 en-In 语言环境,数字也被格式化为西方格式。是否有任何选项可以将数字格式化为 lakhs 格式?

Ex - 我希望 NumberFormatInstance.format(123456) 给出 1,23,456.00 而不是 123,456.00 (例如,使用描述的系统this Wikipedia page)。

最佳答案

由于标准的 Java 格式化程序是不可能的,我可以提供自定义格式化程序

public static void main(String[] args) throws Exception {
    System.out.println(formatLakh(123456.00));
}

private static String formatLakh(double d) {
    String s = String.format(Locale.UK, "%1.2f", Math.abs(d));
    s = s.replaceAll("(.+)(...\\...)", "$1,$2");
    while (s.matches("\\d{3,},.+")) {
        s = s.replaceAll("(\\d+)(\\d{2},.+)", "$1,$2");
    }
    return d < 0 ? ("-" + s) : s;
}

输出

1,23,456.00

https://stackoverflow.com/questions/14507658/

相关文章:

c++ - Vim:源代码格式化

python - 适用于 Python 的 Visual Studio Code 缩进

floating-point - 如何用前导零填充 Fortran 浮点输出?

python - Django 进行条件格式化的方法

javascript - "user-select: none"和 Firefox 中的奇怪行为

python - 在一行中使用一个表达式两次 - 作为字符串格式的条件和?

java - 使用Apache POI在Excel中使用千位分隔符格式化数字

PHP - 只读电子表格文件类型?

reporting-services - 如何使rdl文件中的特定文本仅加粗

python - 如何在 Python 中检查字符串是否具有格式参数?