A friendly place for programming greenhorns!
Big Moose Saloon
Register / Login
Win a copy of
Head First Android
this week in the
Java in General
Math.log problem in JDK1.4
Joined: Apr 30, 2007
Dec 22, 2008 02:54:00
While calculating logarithm values in JDK1.4 it returns some unpredicted values. As Math.log() returns double so there is loss of precision and exact log base 10 values cannot be calculated.
For a CR in TP, a formula was given as:
DispCode = Int ( -1 * log10( abs(LsbRsln)))
which is written in
int dispcode = (int) (-1 * (Math.log(Math.abs(Double.parseDouble(lsbrsln))) / Math.log(10)));
For example, if lsbrsln = 0.001, the formula is expected to return 3, instead it returns 2. The following part of the formula
Math.log (Math.abs (Double.parseDouble(0.001))) / Math.log(10) is returning -2.999999� and finally the formula is returning 2 while casting it into int.
In JDK1.5 we have Math.log10 method itself for calculating logbase10 values. But since we need to support JDK1.4 also we were not able to use that also.
Please let me know if you have the solution.
Joined: Mar 22, 2005
Dec 22, 2008 03:30:00
Please do not post the same question multiple times. Let's continue the discussion in this
, where you have an answer already.
It is sorta covered in the
JavaRanch Style Guide
subject: Math.log problem in JDK1.4
decimal to binary number converter
Conflicting Mouse Events
For Loop Performance
All times are in JavaRanch time: GMT-6 in summer, GMT-7 in winter
| Powered by
Copyright © 1998-2015