function losHandler() { var basis = 10; var eingabe = document.getElementById("zahl"); var ergebnis = document.getElementById("ergebnis"); ergebnis.innerHTML = ""; eingabe = parseFloat(eingabe.value); /* eingabe.replace(",","."); */ if (eingabe === null) { alert("Keine Eingabe erhalten!"); } /* für verschiedene Browser... (und zur bestimmten Absicherung) */ else if (eingabe === "") { alert("Keine Eingabe erhalten!"); } else if (eingabe === undefined) { alert("Keine Eingabe erhalten!"); } else if (isNaN(parseInt(eingabe))) { alert("Bitte geben Sie nur Zahlen ein!"); } else if (eingabe < 0) { alert("Bitte geben Sie nur Zahlen grösser als Null ein!"); } else if (eingabe < 1) { ergebnis.innerHTML = "log<sub>" + basis + "</sub>" + eingabe + " = " + ausweg(eingabe); } else { ergebnis.innerHTML = "log<sub>" + basis + "</sub>" + eingabe + " = " + log(eingabe, basis); } } function power(basis, exponent) { /* damit Potenzgesetze eingehalten werden */ if (exponent === 0) { return 1; } /* Potenzfunktion */ else { var k = basis; for (var u = 1; u < exponent; u++) { k = k * basis; } return k; } } function log(wert, basis) { var a = 0; var c = 0; var zahl = wert; var gesucht = ""; /* eigentliche Rechnung. 15 Stellen */ for (var i = 0; i < 15; i++) { a = 0; c = 0; for (a; zahl >= power(basis, a); a++) { c++; } a = a - 1; zahl = zahl / (power(basis, a)); zahl = power(zahl, basis); gesucht += a; if (i === 0) { gesucht += "."; } } return nullen(gesucht); } function nullen(eingabe) { eingabe = eingabe.replace("0000000000", "0"); return eingabe; } function ausweg(eingabe) { /* Wenn der Nutzer eine Zahl kleine als 1 eintippt, sind wir machtlos mit unserer Methode */ return Math.log(eingabe) / Math.LN10; }
<form> <input type="text" id="zahl" size="40" placeholder="Zehnerlogarithmus von..." /> <input type="button" id="los" value="Los!" onClick="losHandler(); return false;" /> </form> <p id="ergebnis"></p>