Wenn das Ziel ist, eine Achse zu skalieren, führt der Logarithmus auch für Werte zwischen 0 und 1 zum Ziel.
Es muss natürlich der Zehnerlogarithmus sein, z. B. so:
function groessenordnung(x) {
var gr, vz;
if (isNaN(x) || x === 0) {
return 0;
}
else {
// Vorzeichen feststellen
vz = (x < 0 ? -1 : 1);
// positiv machen
x = x * vz;
//Zehnerlogarithmus, aufgerundet
return Math.ceil(Math.log(x) / Math.LN10);
}
}
Gruß H.