in reply to Clean log_10 ?
I'm interested to get the log10 of a whole number(IIRC) Unless that number is a power of ten, the log10 is going to be irrational. This mean you wouldn't even be able to get an exact value by using Rationals (that's the definition). Best you can do to have an "exact value" would be something like:
where you can drop the right side of the addition when $1 == 1.0. Oh and the right side is guaranteed to be in [0;1)sub log10 { sprintf("%e", $_[0]); print "log10($_[0]) = $2 + log10($1)" }
Edit: I suppose POSIX's log10, as demonstrated by pryrt does give the correct answer for the special cases that are powers of ten. But it's still going to give an approximation for all other numbers.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Clean log_10 ?
by LanX (Saint) on Nov 28, 2019 at 17:15 UTC | |
by dave_the_m (Monsignor) on Nov 28, 2019 at 19:48 UTC | |
by LanX (Saint) on Nov 28, 2019 at 20:17 UTC |