根据区域设置的数字格式(逗号分隔) [英] Number Format (Comma Separation) as per locale

查看:73
本文介绍了根据区域设置的数字格式(逗号分隔)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要以以下格式123,456,789.90 显示类似123456789.905 的数值.但是逗号分隔会根据手机中选择的区域设置而变化(就像美国英语选择的逗号分隔是 3 个位置,如果选择印度英语就像 12,34,56,789.90)..>

如何格式化我的 Double?

解决方案

所以,java.text.NumberFormat 并没有解决这个问题,不幸的是,com.ibm.icu.text.NumberFormat 确实如此.

你可以使用这个:

双 d = 123456789.905;com.ibm.icu.text.NumberFormat format = com.ibm.icu.text.NumberFormat.getNumberInstance(new Locale("en", "in"));format.setMinimumFractionDigits(2);format.setMaximumFractionDigits(2);System.out.println(format.format(d));

输出:12,34,56,789.90.

I have a requirement to show a number value like 123456789.905 in the following format 123,456,789.90. But the comma separation changes depending on the locale selected in the phone (as if with US English selected comma separation is 3 places and if India English is selected it is like 12,34,56,789.90).

How can I format my Double?

解决方案

So, java.text.NumberFormat doesn't slove the problem, unfortunately, but com.ibm.icu.text.NumberFormat does.

You can use this:

Double d = 123456789.905;
com.ibm.icu.text.NumberFormat format = com.ibm.icu.text.NumberFormat.getNumberInstance(new Locale("en", "in"));
format.setMinimumFractionDigits(2);
format.setMaximumFractionDigits(2);

System.out.println(format.format(d));

This outputs: 12,34,56,789.90.

这篇关于根据区域设置的数字格式(逗号分隔)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆