Hallo Community,
ich habe hier ein kleines Problem mit großen Zahlen.
Ich habe ein kleines Script das für eine BHKW Steuerung per Eingabefeld eine Leistung annimmt und diese auf definierte Min-Max Werte vergleicht. Das Script funktioniert auch, ABER, nur solange die von mir zulässigen Max Werte unterhalb einer Million liegen. Also gebe ich vor das das BHKW 1.000.000 W als Max hat, dann kann ich KEINE kleineren Werte wie z.b. 8500 oder 5 eingeben, bzw weisst das Script das als Fehler ab. Liegt der Max bereich bei 999.999 W, dann kann ich kleinere Werte wie 5 oder 1200 W nehmen.
Obwohl der Wert größer als 0 (lmin) und kleiner als 1000000 (lmax) ist geht das Script in den else Alert rein. Bei Zahlen kleiner 1000000 ist alles gut. Wo ist denn hier mein Fehler ?
Hier mein JS Script:
Kurz zur Erklärung, auf einer PHP Seite ist ein Button der angeklickt wird. Der Min/Max Wert entstammt einer Datenbank mit den BHKW Daten.
ich habe hier ein kleines Problem mit großen Zahlen.
Ich habe ein kleines Script das für eine BHKW Steuerung per Eingabefeld eine Leistung annimmt und diese auf definierte Min-Max Werte vergleicht. Das Script funktioniert auch, ABER, nur solange die von mir zulässigen Max Werte unterhalb einer Million liegen. Also gebe ich vor das das BHKW 1.000.000 W als Max hat, dann kann ich KEINE kleineren Werte wie z.b. 8500 oder 5 eingeben, bzw weisst das Script das als Fehler ab. Liegt der Max bereich bei 999.999 W, dann kann ich kleinere Werte wie 5 oder 1200 W nehmen.
Obwohl der Wert größer als 0 (lmin) und kleiner als 1000000 (lmax) ist geht das Script in den else Alert rein. Bei Zahlen kleiner 1000000 ist alles gut. Wo ist denn hier mein Fehler ?
Hier mein JS Script:
Code:
function keepDigits(str) { return str.replace( /[^0-9]/g, "" ); } function leistungsoll(anlid, getleistung, lmin, lmax) { var leistung = prompt("Bitte die SOLL Leistung in W eingeben ("+ lmin+" W - "+ lmax+ " W): ", getleistung); var zleistung = keepDigits(leistung); if (zleistung == null || zleistung == "") { zleistung = 0; } else { //alert("Soll " + zleistung + " Min " + lmin + " Max " + lmax); if (zleistung >= lmin && zleistung <= lmax) { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET", "setleistung.php?i=" + anlid + "&l=" + zleistung); xmlhttp.send(); } else { alert("Bitte die Leistung nur im erlaubten Rahmen eingeben."); } } }
Comment