【发布时间】:2012-05-11 18:56:59
【问题描述】:
如何使用NumberFormat 为给定的Locale(默认语言环境就足够了)和给定的小数位数格式化double 值?
例如,我有这些值:
double d1 = 123456.78;
double d2 = 567890;
我想用以下方式打印它们,例如使用美国语言环境和 2 个小数位:
123,456.78
567,890.00
在这种情况下,我实际上并不关心舍入模式,因为这些双精度值是从具有给定比例的BigDecimal 获得的,因此它们的小数位数总是小于或等于我的小数位数想打印。
编辑:
为了让事情更清楚一点,问题是我想以依赖于语言环境的方式显示货币,但小数位数是固定的。上面的示例显示,如果系统区域设置为en_US,则应如何格式化这些值。现在让我们说,系统语言环境是cs_CZ(捷克语),所以相同的数字应该这样格式化:
123 456,78
567 890,00
现在,如何设置 NumberFormat 以始终显示 2 位小数,但根据当前语言环境显示千位分隔符和小数点?
【问题讨论】: