You could convert to string (bleh) and strip the decimal out, then to
int. Not the best approach, but it should work without any errors if you
don't mind it using up more resources.

-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Eddie Lascu
Sent: Monday, August 25, 2008 12:28
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: Converting doubles into integers without rounding errors

Hello everyone,

I have some objects that contain an amount field that is declared as
double.
Since it contains amounts, it always has only two decimal digits that
are
significant. During the process I need to convert that double into an
integer by removing the decimal point. For example, $78.59 should be
converted to integer 7859 and $101.53 to 10153. in my code I have
uint nIntAmount = (uint)(objMyObject.Amount * 100);

The problem I am facing is that sometimes, very rarely, there is a
rounding
error that is introduced and the integer obtained is off by a cent (plus
or
minus). For example, this is a line that was traced in my log file:

"Updating the batch with $137.89 as the amount in the transaction. This
amount was converted to 13788."

Can either of you suggest a different way to convert the amounts in
integers
without this nagging rounding error?

Any help will be appreciated,

Eddie

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to