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

Number formatting in java to use Lakh format instead of million format(java中的数字格式使用Lakh格式而不是百万格式)
本文介绍了java中的数字格式使用Lakh格式而不是百万格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

I have tried using NumberFormat and DecimalFormat. Even though I am using the en-In locale, the numbers are being formatted in Western formats. Is there any option to format a number in lakhs format instead?

Ex - 我希望 NumberFormatInstance.format(123456) 给出 1,23,456.00 而不是 123,456.00 (例如,使用描述的系统此维基百科页面).

Ex - I want NumberFormatInstance.format(123456) to give 1,23,456.00 instead of 123,456.00 (e.g., using the system described on this Wikipedia page).

推荐答案

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

Since it is impossible with standard the Java formatters, I can offer a custom formatter

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

这篇关于java中的数字格式使用Lakh格式而不是百万格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)