在ireport中将字符串转换为bigdecimal

时间:2011-02-15 13:13:20

标签: jasper-reports bigdecimal

  1. 如何将以下字符串输出转换为BigDecimal?

    new java.text.DecimalFormat("#,##0.00").format(
      new Double((
        $V{xHrAdm}.doubleValue()*$V{xHrAdm}.doubleValue() +
        $V{xFodaBnB}.doubleValue()*$V{xFodaBnB}.doubleValue() +
        $V{xChem}.doubleValue()*$V{xChem}.doubleValue() +
        $V{xSCMnQA}.doubleValue()*$V{xSCMnQA}.doubleValue() + 
        $V{xPCO}.doubleValue()*$V{xPCO}.doubleValue() +
        $V{xComp.Eng}.doubleValue() * $V{xComp.Eng}.doubleValue()) / 6))
    
  2. 我也想要上面表达式的平方根

1 个答案:

答案 0 :(得分:0)

1。)为什么需要首先将其转换为String然后再转换为BigDecimal?您可以使用double constructor将其直接转换为BigDecimal,如下所示:

new BigDecimal(
$V{xHrAdm}.doubleValue()*$V{xHrAdm}.doubleValue() +
$V{xFodaBnB}.doubleValue()*$V{xFodaBnB}.doubleValue() +
$V{xChem}.doubleValue()*$V{xChem}.doubleValue() +
$V{xSCMnQA}.doubleValue()*$V{xSCMnQA}.doubleValue() + 
$V{xPCO}.doubleValue()*$V{xPCO}.doubleValue() +
$V{xComp.Eng}.doubleValue() * $V{xComp.Eng}.doubleValue()) / 6)

然后将格式应用于单元格。

2。)要获得平方根,您可以使用sqrt method of the Math class,如下所示:

new BigDecimal(
Math.sqrt(
$V{xHrAdm}.doubleValue()*$V{xHrAdm}.doubleValue() +
$V{xFodaBnB}.doubleValue()*$V{xFodaBnB}.doubleValue() +
$V{xChem}.doubleValue()*$V{xChem}.doubleValue() +
$V{xSCMnQA}.doubleValue()*$V{xSCMnQA}.doubleValue() + 
$V{xPCO}.doubleValue()*$V{xPCO}.doubleValue() +
$V{xComp.Eng}.doubleValue() * $V{xComp.Eng}.doubleValue()) / 6))