One Star

convert decimal (comma to dot) postgres

Hi guys
It's me ... again !!! Smiley Very Happy
Here is an example of my file
_________________________
15;2013;25/02/1998;3;999;1;1003,49
15;2105;25/02/1998;3;999;1;1003,49
...
Well I want to convert decimal text column to floating point Postgres Column.
when i try to do that i've got an cute error message Smiley Sad
_________________________________________________________________
tarting job job_2 at 18:17 04/07/2007.
connecting to socket on port 3334
connected
Exception in component tFileInputDelimited_1
java.lang.NumberFormatException: For input string: "1003,49"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at routines.system.ParserUtils.parseTo_float(ParserUtils.java:50)
at projet_1.job_2.job_2.tFileInputDelimited_1Process(job_2.java:296)
at projet_1.job_2.job_2.main(job_2.java:536)
disconnected
Job job_2 ended at 18:18 04/07/2007.
My question ...
Is there an numeric pattern or an other trick to convert my column ?
like that 1003,49 to 1003.49
THX
Regards ...
Didier
_____________________
Under Windows XP
TOS:v2.1.0.M1_r3483
Oracle 10g
Postgres 8.2.3
jre 1.6

_________________________________________________________________
10 REPLIES
Employee

Re: convert decimal (comma to dot) postgres

Hello
Problem is that , is not the decimal separator in Java.
You have to read your fields as a String.
Then you can parse it and convert it as a Float in a tMap : new Float(row.fieldName.replace(',', '.'))
Regards,
One Star

Re: convert decimal (comma to dot) postgres

hi Smiley Wink
oki I try and i keep you informed
i saw the hour of your answer ... lol go to sleep !!! Smiley Very Happy
thx a lot
Regards
One Star

Re: convert decimal (comma to dot) postgres

Hi ...
it work !
Thaaaaaaaanks Smiley Very Happy
Have fun Smiley Wink
Regards !
One Star

Re: convert decimal (comma to dot) postgres

Hello Didier,
I'm facing the same trouble as you did : wanna change decimal separator ',' by '.' from string to float.
I've tried to use a tMap Component with this piece of code :new
Float(row.fieldName.replace(',', '.'))
It fails... Where should I write this expression ?
I'm new to Talend so it would be very kind to help me.
Community Manager

Re: convert decimal (comma to dot) postgres

Hi matthieu
See 1846.
Best regards
shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: convert decimal (comma to dot) postgres

Hello
Problem is that , is not the decimal separator in Java.
You have to read your fields as a String.
Then you can parse it and convert it as a Float in a tMap : new Float(row.fieldName.replace(',', '.'))
Regards,

This my problem Thank you very muchhhh... Smiley Happy))
Six Stars

Re: convert decimal (comma to dot) postgres

in tfileinputdelimited you can set in advanced option custom decimal separaton, so custom coding not needed
bye
One Star

Re: convert decimal (comma to dot) postgres

Hi guys
It's me ... again !!! Smiley Very Happy
Here is an example of my file
_________________________
15;2013;25/02/1998;3;999;1;1003,49
15;2105;25/02/1998;3;999;1;1003,49
...
Well I want to convert decimal text column to floating point Postgres Column.
when i try to do that i've got an cute error message Smiley Sad
_________________________________________________________________
tarting job job_2 at 18:17 04/07/2007.
connecting to socket on port 3334
connected
Exception in component tFileInputDelimited_1
java.lang.NumberFormatException: For input string: "1003,49"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at routines.system.ParserUtils.parseTo_float(ParserUtils.java:50)
at projet_1.job_2.job_2.tFileInputDelimited_1Process(job_2.java:296)
at projet_1.job_2.job_2.main(job_2.java:536)
disconnected
Job job_2 ended at 18:18 04/07/2007.
My question ...
Is there an numeric pattern or an other trick to convert my column ?
like that 1003,49 to 1003.49
THX
Regards ...
Didier
_____________________
Under Windows XP
TOS:v2.1.0.M1_r3483
Oracle 10g
Postgres 8.2.3
jre 1.6

_________________________________________________________________

Problem is that , is not the decimal separator in Java.
You have to read your fields as a String.
-----------------------------------------------------------------------
tuyen dung | viec lam | tim viec
One Star

Re: convert decimal (comma to dot) postgres

Hi guys
It's me ... again !!! Smiley Very Happy
Here is an example of my file
_________________________
15;2013;25/02/1998;3;999;1;1003,49
15;2105;25/02/1998;3;999;1;1003,49
...
Well I want to convert decimal text column to floating point Postgres Column.
when i try to do that i've got an cute error message Smiley Sad
_________________________________________________________________
tarting job job_2 at 18:17 04/07/2007.
connecting to socket on port 3334
connected
Exception in component tFileInputDelimited_1
java.lang.NumberFormatException: For input string: "1003,49"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at routines.system.ParserUtils.parseTo_float(ParserUtils.java:50)
at projet_1.job_2.job_2.tFileInputDelimited_1Process(job_2.java:296)
at projet_1.job_2.job_2.main(job_2.java:536)
disconnected
Job job_2 ended at 18:18 04/07/2007.
My question ...
Is there an numeric pattern or an other trick to convert my column ?
like that 1003,49 to 1003.49
THX
Regards ...
Didier
_____________________
Under Windows XP
TOS:v2.1.0.M1_r3483
Oracle 10g
Postgres 8.2.3
jre 1.6

_________________________________________________________________

Problem is that , is not the decimal separator in Java.
You have to read your fields as a String.
-----------------------------------------------------------------------
tuyen dung | viec lam | tim viec
One Star

Re: convert decimal (comma to dot) postgres

Hi,
I have a similar problem.
Input string: "139,95 ?"
Expected output: "13995" Typ int.
I've solved this problem by using the treplce component (see image), but i think it is possible to do all the stuff in tmap component? am i right?