var newnow = parseFloat(factor)*parseFloat(inform);
где переменные factor и inform не целые числа. factor всегда равна 4.2
И вот смотрите:
1) при умножении factor на 3 будет "12.600000000000001" о_О как?
2) при умножении на 4.2 будет 17.64, а на 4,2(разделитель запятая) 16.8 ... о_О в чём разница?
В первом случае можно просто обрезать и оставлять только 2 знака после запятой.. скрипт для этого
Number.prototype.Crop = function (x){Хотя правила математики вообще нарушены =)
var s = this+'', a = s.split('.');
a[1]=a[1]||'';
return parseFloat(a[0]+'.'+a[1].substring(0,x));
}
Что делать с второй ситуацией? Как так? И если дело в запятой, то как при введении запятой автоматически менять её на точку?