I don't know your data, but based on your log you have at least 3 digits to
the right of the decimal, multiply by 1000 and apply your own round to fix
the amount. Another approach I once took where we wanted no 'rounding' what
so ever, was to convert to string remove the period and convert back to a
number. This last is not very processor friendly so if there is a lot of
data involved that should be considered.

John Warner




> -----Original Message-----
> From: Discussion of advanced .NET topics. 
> [mailto:[EMAIL PROTECTED] On Behalf Of Eddie Lascu
> Sent: Monday, August 25, 2008 12:28 PM
> To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> Subject: [ADVANCED-DOTNET] 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 DevelopMentorR  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