IReport BigDecimal 格式 "R$ #,##0.00" 图表中的货币价值

IReport BigDecimal format "R$ #,##0.00" Monetary Value in Charts

我有一个 JasperReports 图表,在报告中,field $F{soma}BigDecimal,在 database MySQLDecimal(19,2)。我正在使用 sql: select SUM(valor) as soma 来获取字段 $F{soma}。 仅打印 $F{soma} 我得到的标签如下:1.500,20。无格式表达。我需要的是显示如下标签:"R$ 1,520.20".

试过这个:

new java.text.DecimalFormat("R$ #,##0.00").format(Double.valueOf($F{soma}))

但是没有成功,所以如果有人能指出我的方向,我将不胜感激。

没有 post 图片的声誉,但下面的链接是关于 field 类型的..

MySQL 中的字段:

正在打印的标签(无格式表达式)

如果您的 $F{soma} 是一个 BigDecimal 字段,那么只写

new java.text.DecimalFormat("R$ #,##0.00").format($F{soma});

使用 NumberFormat 的一个实例,它具有正确的 Currency 来格式化值。如果默认 Locale 给您带来问题,

  • NumberFormat.getCurrencyInstance(Locale inLocale) 与您想要的 Locale 一起使用,例如:

    NumberFormat.getCurrencyInstance(Locale.US);
    
  • 使用NumberFormat.getInstance()setCurrency()设置你想要的Currency,例如:

    NumberFormat f = NumberFormat.getCurrencyInstance();
    f.setCurrency(Currency.getInstance(…));