tag:blogger.com,1999:blog-8712770457197348465.post5306889638605676285..comments2014-04-23T19:58:45.814-07:00Comments on Javarevisited: Java Mistake 1 - Using float and double for monetary or financial calculationJavin Paulhttps://plus.google.com/114528699166048052030noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-8712770457197348465.post-34261020804710123932014-01-26T17:34:22.884-08:002014-01-26T17:34:22.884-08:00You shouldn't use BigDecimal for financial cal...You shouldn't use BigDecimal for financial calculations either. You should really use a specific Currency class instead. Imagine this: You calculate a discount of 50% on a price of $5.55. That results in a discount of $2.755 and a discounted price of $2.755. Since we cannot pay $2.755 we need to round the numbers. So we round them. Result: Discount is now $2.76 and price is now $2.76 . Total Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8712770457197348465.post-1530781293142551602014-01-21T12:34:47.766-08:002014-01-21T12:34:47.766-08:00This is not specific to Java: I learned that hard ...This is not specific to Java: I learned that hard way while developing Clipper application. Old mainframes had BCD numbers for the very same reason.Željko Trogrlićhttp://www.blogger.com/profile/05942594049791118602noreply@blogger.comtag:blogger.com,1999:blog-8712770457197348465.post-80756144821172567302014-01-20T19:38:20.334-08:002014-01-20T19:38:20.334-08:00float and double data types are mainly provided fo...float and double data types are mainly provided for scientific and engineering calculations. Java uses binary floating point calculations which is good for approximation but doesn't provide exact result. Bottom line is, don't use float/double when exact calculation is needed. You can not represent values like 0.1 or 0.01 or any negative power of 10 accurately in Java. calculating interestAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-8712770457197348465.post-70790116288317466452013-05-08T05:30:36.574-07:002013-05-08T05:30:36.574-07:00@h143570, floating point calculation is a big topi...@h143570, floating point calculation is a big topic in itself. Double or float can not be used whenever you need exact numbers. By the way, thanks for sharing those links.Javin @ ClassLoader in Javahttp://javarevisited.blogspot.com/2012/12/how-classloader-works-in-java.htmlnoreply@blogger.comtag:blogger.com,1999:blog-8712770457197348465.post-31169199923463168362013-05-06T20:02:14.300-07:002013-05-06T20:02:14.300-07:00Using float and double for financial calculations ...Using float and double for financial calculations can be serious mistake. Great to see that you are educating people with this kind of practical advice, long is also not a perfect solution, as monetary calculation for notional and future predictions may go beyond range of long data type.Millernoreply@blogger.comtag:blogger.com,1999:blog-8712770457197348465.post-9657360070787593282013-01-22T10:23:59.434-08:002013-01-22T10:23:59.434-08:00can anyone multiply (200 digit number) with (200 d...can anyone multiply (200 digit number) with (200 digit number) without using BIGNUMBER?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8712770457197348465.post-58276825020265921232012-11-28T14:14:16.731-08:002012-11-28T14:14:16.731-08:00Funny to read about financial calculation. This ja...Funny to read about financial calculation. This java double format is useless for science too. Or want someone used that to calculate statistics of medical drugs safety for example? <br /><br />I think this type actually is mistake. Seams that someone forgot to set all bits from 8 byte number to 0 and rounds some memory garbage from a tail in every operation. And the most evil you can not predictAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-8712770457197348465.post-11231688229062520072012-03-03T19:33:33.461-08:002012-03-03T19:33:33.461-08:00Hi Javin ,
great post! learnt about why to use Big...Hi Javin ,<br />great post! learnt about why to use BigDecimal. <br />Looking forward for this article series.anotherjavadukehttp://anotherjavaduke.wordpress.com/noreply@blogger.comtag:blogger.com,1999:blog-8712770457197348465.post-39429113510048921212012-02-29T12:42:05.395-08:002012-02-29T12:42:05.395-08:00Hey - that explain why all financial operations ar...Hey - that explain why all financial operations are computed using BigDecimal in my company.<br /><br />You opened my eyes!Anonymousnoreply@blogger.com