In Oracle 9i, i have created a decimal value using Number datatype as NUMBER(17,5). I am storing the value as 999999999999.99. When i retrive this, it gives 999999999999.99002. When i store 999999999999.999, and retrieve, it gives 999999999999.99898. How does it happen? Why the value changes ? Please explain me. Thanks in advance.
How are the values being stored; are you sure those are the values being placed there? are there any underlying triggers or running jobs that modify the data after its inserted? what are you viewing it with, is it "formatting" it somehow?
in your dev environment create a table with a number (17,5) column and insert the number values you have shown and then select them. they should be no different.
there are many "things" that could cause what your seeing but the database itself will not modify a value you give it to store.