File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes Decimal place result Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Decimal place result" Watch "Decimal place result" New topic

Decimal place result

henry akoma

Joined: May 17, 2005
Posts: 21
hi guys,
some colleagues and i were writting a calculator program, but the result of some of our calculations were giving approximate answers and not the exact one.for example:

subtraction gave -0.100000024 instead of -0.1.

please can anyone help us with what to do to get the correct answer and may be decimal place
Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42965
floats are inherently limited in their precision, and some numbers just can't be expressed precisely using them. "0.1" is such a number, as is "0.9". Using doubles makes things a bit better (around 14 exact decimals instead of 7 or so), but the basic problem is the same. (If you're interested in the gory details, read up on What Every Computer Scientist Should Know About Floating-Point Arithmetic.)

If you require exact floating point arithmetic, you can use the java.math.BigDecimal class.
[ August 09, 2005: Message edited by: Ulf Dittmer ]
Stuart Gray
Ranch Hand

Joined: Apr 21, 2005
Posts: 410
There are well known problems with floating point arithmetic. You could try BigDecimal in the java.math package.
I agree. Here's the link:
subject: Decimal place result
It's not a secret anymore!