2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-12 16:46:35 +00:00

fhemweb.js: better rounding for floats (Forum #44104)

git-svn-id: https://svn.fhem.de/fhem/trunk@9907 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-11-15 18:35:28 +00:00
parent 392189f2fe
commit 2278abc4f6

View File

@ -766,6 +766,12 @@ FW_createSlider(elName, devName, vArr, currVal, set, params, cmd)
var stp = parseFloat(vArr[2]);
var max = parseFloat(vArr[3]);
var flt = vArr[4];
var dp = 0; // decimal points for float
if(flt) {
var s = ""+stp;
if(s.indexOf(".") >= 0)
dp = s.substr(s.indexOf(".")+1).length;
}
if(currVal != undefined)
currVal = currVal.replace(/[^\d.\-]/g, "");
currVal = (currVal==undefined || currVal=="") ? min : parseFloat(currVal);
@ -842,8 +848,8 @@ FW_createSlider(elName, devName, vArr, currVal, set, params, cmd)
if(offX < 0) offX = 0;
if(offX > maxX) offX = maxX;
val = offX/maxX * (max-min);
val = (flt ? Math.floor(val/stp)*stp :
Math.floor(Math.floor(val/stp)*stp))+min;
val = flt ? (Math.floor(val/stp)*stp+min).toFixed(dp) :
(Math.floor(Math.floor(val/stp)*stp)+min);
sh.innerHTML = val;
sh.setAttribute('style', 'left:'+offX+'px;');
}
@ -871,6 +877,8 @@ FW_createSlider(elName, devName, vArr, currVal, set, params, cmd)
currVal = (res ? parseFloat(res[0]) : min);
if(currVal < min || currVal > max)
currVal = min;
if(flt)
currVal = parseFloat(currVal).toFixed(dp);
newEl.activateFn();
};
return newEl;