It's not a secret anymore!
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: 42959
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!