Convert String to BigDecimal in tMapJoin

Six Stars

Convert String to BigDecimal in tMapJoin

Hi, in my tMap I'm joining two tables, but I've discovered that the join fields are one a String and one a BigDecimal. The output must be a String. I used the method "toString()" on the BigDecimal field, but it keeps telling me that it cannot convert from String to BigDecimal, which I don't understand since I'm doing the opposite operation.

Thirteen Stars

Re: Convert String to BigDecimal in tMapJoin

@Mary,can you provide sample date which are you going to String to BigDecimal? I believe there could be data issue.

Manohar B
Nine Stars

Re: Convert String to BigDecimal in tMapJoin

Try something like this - 

String.valueOf((row1.bigDecimalField).doubleValue())
Ten Stars

Re: Convert String to BigDecimal in tMapJoin

could you provide a tMap screenshot please?

- And why to String??? 
- And if your output is towards a table and its "Create if not exists" setting , when you altered your tMap there's still a problem your table still is BigDecimal ...

 

However.... an important sidenote :

 

BigDecimal bgd = new BigDecimal(8.0001)
System.out.println(bgd.toString());
// the output could be : 8.0000999999999998765981265985983427124042342

It will get the closest value So your join goes wrong, instead of the above code, this should be used: 

 

 

BigDecimal bgd = new BigDecimal.valueOf(8.0001)

I hope Talend conversion works in this way...

 

 

 

 

Thirteen Stars

Re: Convert String to BigDecimal in tMapJoin

Tutorial

Introduction to Talend Open Studio for Data Integration.

Definitive Guide to Data Integration

Practical steps to developing your data integration strategy.

Definitive Guide to Data Quality

Create systems and workflow to manage clean data ingestion and data transformation.