/ Published in: JavaScript
This snippet is a reemplacement for the parseFloat function of the Javascript language. This new function gets one or two parameters if only one parameter is defined the function is like the original parseFloat. If there are two parameter passed to the function, the first parameter must be a string or number and the second parameter must be the number of decimals we want to get, if the last decimal is greater or equal than five the last decimal is incremented by one.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
var proxyFloat = window.parseFloat; window.parseFloat = function(number,nDecimals){ var amischol = true; var stringNumber = number.toString(), lastDec, posFinal, numberMore, result, decimalType, decimals; var decimalTypes = [".",","]; for(var i = 0; i < decimalTypes.length; i++){ pos = stringNumber.indexOf(decimalTypes[i]); if(pos != -1){ decimalType = decimalTypes[i]; break; } } decimals = (stringNumber.length-1)-pos; if(typeof nDecimals != "undefined"){ decimals = nDecimals; } posFinal = pos+(decimals+1); if(pos != -1){ lastDec = stringNumber.substr(posFinal,1); stringNumber = stringNumber.substr(0,posFinal); if(lastDec >= 5){ numberMore = stringNumber.substr(stringNumber.length-1,1); if(numberMore == decimalType){ stringNumber = (stringNumber.substr(0,stringNumber.length-1)*1)+1; }else{ stringNumber = stringNumber.substr(0,stringNumber.length-1)+((numberMore*1)+1); } } } result = proxyFloat(stringNumber); return result; };