Five Stars

Talend BigDecimal division output Weird

I have 2 BigDecimal Numbers. I am doing simple division: Number1/Number2. 

 

In talend: tMap: 80/8.52 = 9

but in excel: 

9.389671362

 

  The valid answer that I require is the Excel output. What the issue with BigDecimal division in Talend ?

post.PNG

1 ACCEPTED SOLUTION

Accepted Solutions
Twelve Stars TRF
Twelve Stars

Re: Talend BigDecimal division output Weird

Change the scale to 9 and add the rounding mode to the division, like in this example:

row59.num1.divide(row59.num2, 9, BigDecimal.ROUND_HALF_UP) 

The result is:

Starting job test at 18:01 23/05/2017.

[statistics] connecting to socket on port 3583
[statistics] connected
.----+----+-----------.
|     tLogRow_26      |
|=---+----+----------=|
|num1|num2|result     |
|=---+----+----------=|
|80.0|8.52|9.389671362|
'----+----+-----------'

[statistics] disconnected
Job test ended at 18:01 23/05/2017. [exit code=0]

Exactly what Excel gives you.

For this example, num1 and num2 are issued from a tFixedFlowInput:

Capture.PNG

And the result is computed in a tMap:

Capture.PNG

Hope this helps.


TRF
2 REPLIES
Twelve Stars TRF
Twelve Stars

Re: Talend BigDecimal division output Weird

Change the scale to 9 and add the rounding mode to the division, like in this example:

row59.num1.divide(row59.num2, 9, BigDecimal.ROUND_HALF_UP) 

The result is:

Starting job test at 18:01 23/05/2017.

[statistics] connecting to socket on port 3583
[statistics] connected
.----+----+-----------.
|     tLogRow_26      |
|=---+----+----------=|
|num1|num2|result     |
|=---+----+----------=|
|80.0|8.52|9.389671362|
'----+----+-----------'

[statistics] disconnected
Job test ended at 18:01 23/05/2017. [exit code=0]

Exactly what Excel gives you.

For this example, num1 and num2 are issued from a tFixedFlowInput:

Capture.PNG

And the result is computed in a tMap:

Capture.PNG

Hope this helps.


TRF
Five Stars

Re: Talend BigDecimal division output Weird

Thanks a lot for your prompt help !!! It worked.