(reprise du message précédent)
Release 1 d'accurateRoundTo suite à remaque Tony Monast des erreurs sur les nombres compris entre 0 et 1 et traitement des nombres négatifs :
Modifié par aCOSwt (19 Jan 2007 - 22:39)
Release 1 d'accurateRoundTo suite à remaque Tony Monast des erreurs sur les nombres compris entre 0 et 1 et traitement des nombres négatifs :
function accurateRoundTo(number,precision){
var nstr, parts, resint, dotpos, dummy, isneg, isnul;
isneg=0;
isnul=0;
parts=new Array();
if(number<0){
number=Math.abs(number);
isneg=1;}
nstr=number.toString();
dotpos=nstr.indexOf(".",0);
if((dotpos<0)||(nstr.length<(dotpos+precision+2))){
if(isneg)
return("-"+nstr);
else
return(nstr);}
parts=nstr.split(".");
if(parts[0]=="0"){
parts[0]="10";
isnul=1;}
resint=parts[0]+parts[1].substr(0,precision);
if(parseInt(parts[1].charAt(precision))>4){
dummy=parseInt(resint)+1;
resint=dummy.toString();}
parts[0]=resint.substr(0,resint.length-precision);
parts[1]=resint.substr(parts[0].length,precision);
if(isnul)
parts[0]=parts[0].substr(1,1);
if(isneg)
parts[0]="-"+parts[0];
return(parts[0]+"."+parts[1]);}
Modifié par aCOSwt (19 Jan 2007 - 22:39)