This works in terms of what you are trying to achieve Steve...
<cfset cents = (dollar * 1000)/10 /> Floating point maths in scripted languages has always been a pain... Brett B) AJ Mercer wrote: > If you do a NumberFormat of cents you get 994.999999999 > #NumberFormat(cents), '999.99999999999')# > > > > On 8/13/07, *Steve Onnis* < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > > Its from a shopping cart form > > Basically what I wanted to do was stop people sending decimal values > more > than 2 points. The examples of the implementation I was sent from the > provider showed that they were just removing the decimal point from the > number value and sending that as the cents value. > > Problem is if for some reason the person implementing the credit card > processing passed in 9.995 or something. Then instead of billing > the card > 9.99 they would be billed 99.95. > > So I figured I would move the point rather than remove it and make it a > whole number which is why I was doing this. > > I have changed it from FIX() to ROUND() anyway > > Steve > > -----Original Message----- > From: [email protected] <mailto:[email protected]> > [mailto: [email protected] > <mailto:[email protected]>] On Behalf > Of Haikal Saadh > Sent: Monday, 13 August 2007 12:19 PM > To: [email protected] <mailto:[email protected]> > Subject: [cfaussie] Re: Strange FIX() behaviour > > > I remember a thread from here a while back discussing the various > idiosyncrasies of floating point arithmetic, and that you should be > really > storing money in cent amounts. > > I've got no first hand experience in this, but have a flip thru the > archives. > > David Harris wrote: > > Something odd is happening there > > > > If you do this: > > > > <cfset cents = 995 > > > <cfoutput> > > #FIX(cents)# > > </cfoutput> > > > > you get the expected result. eg: 995 > > > > The only thing that springs to mind is that maybe: > > > > 9.95 * 100 = 994.99999999 ? > > > > not sure how to prove this theory tho... > > > > > > > > Steve Onnis wrote: > > > >> Has anyone come across this before? > >> > >> <cfset dollar = 9.95 /> > >> <cfset cents = dollar * 100 /> > >> <cfoutput> > >> #FIX(cents)# > >> </cfoutput> > >> > >> outputs 994 > >> > >> I could maybe understand this is i had more decimal places but it is > >> a plain > >> 2 point decimal value. > >> > >> Any ideas? > >> > >> > >> > >> > >> > <http://www.inevative.com.au/images/email-stationary/inevativeLogo_sm > <http://www.inevative.com.au/images/email-stationary/inevativeLogo_sm> > >> all.jpg > >> > >> Steve Onnis > >> > >> > >> Director / Head Developer > >> > >> > >> < http://www.inevative.com.au/images/email-stationary/email.jpg> > >> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > >> > >> < > http://www.inevative.com.au/images/email-stationary/phone.jpg> +61 > >> 3 9001 > >> 2258 > >> > >> > <http://www.inevative.com.au/images/email-stationary/mobile.jpg > <http://www.inevative.com.au/images/email-stationary/mobile.jpg>> > >> 0401 667 > >> 996 > >> > >> <http://www.inevative.com.au/images/email-stationary/web.jpg> > >> www.inevative.com.au <http://www.inevative.com.au> > >> > >> <http://www.novahost.com.au> <http://www.threesquares.com.au > <http://www.threesquares.com.au>> > >> <http://www.smsonline.com.au> > >> > > > > > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "cfaussie" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en -~----------~----~----~----~------~----~------~--~---
