首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何打印格式化的BigDecimal值?

如何打印格式化的BigDecimal值?
EN

Stack Overflow用户
提问于 2010-08-03 18:57:29
回答 6查看 223.5K关注 0票数 118

我有一个代表货币的BigDecimal字段amount,我需要在浏览器中以$123.00$15.50$0.33等格式打印它的值。

我该怎么做呢?

(我自己看到的唯一简单的解决方案是从BigDecimal获取floatValue,然后使用NumberFormat使小数部分的精度达到两位数)。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-08-03 19:01:28

代码语言:javascript
复制
public static String currencyFormat(BigDecimal n) {
    return NumberFormat.getCurrencyInstance().format(n);
}

它将使用您的JVM的当前默认Locale来选择您的货币符号。或者您可以指定一个Locale

代码语言:javascript
复制
NumberFormat.getInstance(Locale.US)

有关更多信息,请参见NumberFormat类。

票数 152
EN

Stack Overflow用户

发布于 2015-07-21 13:45:00

要设置千分隔符,比如说123,456.78,你必须使用DecimalFormat

代码语言:javascript
复制
     DecimalFormat df = new DecimalFormat("#,###.00");
     System.out.println(df.format(new BigDecimal(123456.75)));
     System.out.println(df.format(new BigDecimal(123456.00)));
     System.out.println(df.format(new BigDecimal(123456123456.78)));

结果如下:

代码语言:javascript
复制
123,456.75
123,456.00
123,456,123,456.78

虽然我设置了#,###.00掩码,但它也成功地格式化了较长的值。请注意,result中的逗号(,)分隔符取决于您的区域设置。对于俄语语言环境,它可能只是空格()。

票数 80
EN

Stack Overflow用户

发布于 2017-09-20 11:46:24

代码语言:javascript
复制
 BigDecimal pi = new BigDecimal(3.14);
 BigDecimal pi4 = new BigDecimal(12.56);

 System.out.printf("%.2f",pi);

//打印3.14

代码语言:javascript
复制
System.out.printf("%.0f",pi4);

//打印13

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3395825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档