Won't work the way you think!
A float is 32-bit so only have about 4-5 digits of precision. That number is WAY TOO BIG! So it will definitely be put into exponential form provided the buffer is large enough! It also depends upon how long a buffer is acceptable!
wildgoose
Practically a Posting Shark
896 posts since Jun 2009
Reputation Points: 546
Solved Threads: 99
You are getting exactly the error I'm talking about! That's one of the reason you do not use floating-point for accounting as you lose pennies! That's why for accounting application its best to used fixed point or BCD math.
You are getting a loss of precision! Only it is being displayed in normal floating-point instead of in its exponential form!
wildgoose
Practically a Posting Shark
896 posts since Jun 2009
Reputation Points: 546
Solved Threads: 99
According to your other post you mention entering integers with that many digits and parsing each digit. Why are you now entering as a Single-Precision Floating-Point value and having the system call do the work for you? Do it the way you originally indicated as an integer. If you like, handle a carry type operation into two 32-bit values so as to handle a bigger number!
To rectify your problem and have the system do the work for you, you need to enter a 64-bit Double-Precision Floating-Point value, or an 80-bit Extended Double-Precision Floating-Point Value.
wildgoose
Practically a Posting Shark
896 posts since Jun 2009
Reputation Points: 546
Solved Threads: 99