<runon> You should tell the bank their data could be off and they should hire you as the new developer of the dll, because the original developers knew about a rounding error and in rare cases are depositing the rounded amounts in their bank accounts : ) </runon>
On Mon, Aug 25, 2008 at 10:11 AM, Eddie Lascu <[EMAIL PROTECTED]> wrote: > Adam, you are right and I thought about it. The problem is I need to > interface with a POS .dll provided by the bank and that works with > input/output parameters declared as double. So I would have to convert the > double to a decimal and then the decimal to integer. I decided to do only > one conversion (I am pretty sure the same rounding errors would creep in > when converting the double to decimal). > > > > -----Original Message----- > From: Discussion of advanced .NET topics. > [mailto:[EMAIL PROTECTED] Behalf Of Adam Tuliper > Sent: Monday, August 25, 2008 12:49 PM > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM > Subject: Re: [ADVANCED-DOTNET] Converting doubles into integers without > rounding errors > > > any chance of fixing the underlying issue and moving to the Decimal data > type? double is not fun to work with because of this exact issue. > double uses basically binary fractions to store data, decimal data type > does > not and as such should be able to represent your number perfectly. > > > > On Mon, Aug 25, 2008 at 9:38 AM, Gregory Miley <[EMAIL PROTECTED]> wrote: > > > 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(R) http://www.develop.com > > > > View archives and manage your subscription(s) at > > http://discuss.develop.com > > > > =================================== > 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(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