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:
parent
392189f2fe
commit
2278abc4f6
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user