Page 1 of 1

FLOAT Datatype; Minimum Value?

Posted: Thu Jul 27, 2006 6:23 am
by wwalker
Hello,

I am populating a financial application, that requires a high degree of accuracy for obvious reasons...

I have a required field of Float datatype, that has some data quality issues at the source, in that the source value is coming as a zero...however, zero is not an acceptable value for the application.

I have tried replacing zero with "0.00000001" or 0.99E-99, but DataStage seems to reset the value to 0 again. I have tested my (simple) expression with other values (such as "9999999999" for a test), and it works correctly...

NOTE ...I misquoted the number I used...it was "0.00000000000000000001" and this reverts to 0

Any ideas? What IS the minimum value that can be populated to a FLOAT datatype without being defaulted back to zero? This seems like strange behaviour....

Thanks

W

Posted: Thu Jul 27, 2006 6:58 am
by loveojha2
Which is your database?

I tried with Sql Server with the value

Code: Select all

.0000000000000000001
I got
1.0000000000000001E-19
in the table.

The datatype of the column is float.

Posted: Thu Jul 27, 2006 7:03 am
by wwalker
the DB is Oracle

Posted: Thu Jul 27, 2006 7:21 am
by ray.wurlod
Maximum precision of numeric data within DataStage server jobs is, by default, 15 significant digits. This default can be overridden with the EXACTNUMERIC configuration parameter in uvconfig.

The PRECISION statement in BASIC affects the maximum number of digits that will appear to the right of the decimal place when a numeric item of data is prepared for presentation (converted to string).

Posted: Thu Jul 27, 2006 7:43 am
by ds_developer
I believe you are hitting the setting called EXACTNUMERIC. It is in the uvconfig file. The default is 15 and I would not recommend changing it. The comment in the uvconfig file says "Specifies the number of digits of precision before rounding occurs".

Try using a value that is shorter than your exact_numeric setting, like 0.0001.

John