2016-11-23 73 views
0

我想创建一个多列的报告。我有一列total,它代表了以前的列的总和。动态报告BigDecimal

不过,我所获得的价值是BigDecimal类型和.add方法的返回类型是BigDecimal而不是整数,例如:12.00,我希望它显示为只有12个报告。

这里是我的代码:

TextColumnBuilder<Integer> col1 = col.column("Locked Users" , "Locked" , DataTypes.integerType()); 
TextColumnBuilder<Integer> col2 = col.column("Unlocked Users" , "unlocked" , DataTypes.integerType()); 
TextColumnBuilder<Integer> col3 = col.column("Failed Logins" , "invalid" , DataTypes.integerType()); 
TextColumnBuilder<Integer> col4 = col.column("Forgot Password" , "Passforget" , DataTypes.integerType()); 
TextColumnBuilder<BigDecimal> col5 = col1.add(col2).add(col3).add(col4).setTitle("Total"); 

我该怎么办呢?

+1

你可以例如:BigDecimal b = new BigDecimal(“12.00”)'然后在int中使用'b.intValue()' – Omoro

+0

这是在正常的java中,它不会适用于动态报告中的列 –

+0

我不知道动态报告,但可以使用Big整数而不是BigDecimal。像这样的东西应该给你格式选项我猜... – AxelH

回答

1

如果您不想使用分数,请使用BigInteger而不是BigDecimal。 或者你可以按照以下使用,

DecimalFormat df = new DecimalFormat("##"); 
df.format(yourNumber); 
0

默认情况下,大的十进制类型有以下格式 “#,###0.00”

你可以重写它为你列

col5.setPattern("#,##0");