You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.1 KiB
78 lines
2.1 KiB
/* |
|
DynAPI Distribution |
|
dynapi.functions.Numeric extension |
|
*/ |
|
|
|
var f = dynapi.functions; |
|
f.Numeric = Numeric = {}; // used by dynapi.library |
|
|
|
// Numeric Function --------------------------------- |
|
|
|
f.formatNumber = function(n,format){ |
|
if(isNaN(n)) return; |
|
var i,c,f,comma,symbol='',sign='',decimals='',integers=''; |
|
var fInt,fDec,nInt,nDec,len=0,cnt=0; |
|
if(n<0) sign='-'; |
|
n+='';if(sign) n=n.replace('-',''); |
|
format=(format)? format+'':'#,##0.00'; |
|
if(format.indexOf(',')>=0) comma=','; |
|
if(format.indexOf('$')>=0) symbol='$'; |
|
else if(format.indexOf('%')>=0) symbol='%'; |
|
s=format.split('.'); |
|
fInt=((s[0]==''||s[0]==null||s[0]=='undefinded')? '':s[0]); |
|
fInt=fInt.split('').reverse().join(''); |
|
fDec=(s[1]==''||s[1]==null||s[1]=='undefinded')? '':s[1]; |
|
s=n.split('.'); |
|
nInt=((s[0]==''||s[0]==null||s[0]=='undefinded')? '':s[0]); |
|
nInt=nInt.split('').reverse().join('');; |
|
nDec=(s[1]==''||s[1]==null||s[1]=='undefinded')? '':s[1]; |
|
if (nInt) len=nInt.length; |
|
if (fInt.length>len) len=fInt.length; |
|
for(i=0;i<len;i++){ |
|
c=nInt.charAt(i); |
|
f=fInt.charAt(i); |
|
cnt++; |
|
if (cnt==4 && comma && (c||f=='0')) integers+=comma; |
|
if(f=='0' && !c) integers+='0'; |
|
else if(c) integers+=c; |
|
if (cnt==4) cnt=1; |
|
} |
|
if(fDec) len=fDec.length; |
|
for(i=0;i<len;i++){ |
|
c=nDec.charAt(i); |
|
f=fDec.charAt(i); |
|
if(f=='0' && !c) decimals+='0'; |
|
else if((f=='#' || f=='0') && c) decimals+=c; |
|
} |
|
f=((integers+'').split('').reverse().join(''))+((decimals)? '.'+decimals:''); |
|
if(symbol=='%') f+=symbol; |
|
else f=symbol+f; |
|
return sign+f; |
|
}; |
|
f.isFloat=function(n){ |
|
if(typeof(n)=='number' && (n+'').indexOf('.')>=0) return true; |
|
else return false; |
|
}; |
|
f.isInteger=function(n){ |
|
if(typeof(n)=='number' && (n+'').indexOf('.')<0) return true; |
|
else return false;; |
|
}; |
|
f.toInteger=function(dt){ |
|
var vl; |
|
if(!dt) return 0; |
|
if(isNaN(dt)) vl=parseInt((dt+'').replace(/\,/g,'')); |
|
else vl= parseInt(dt); |
|
if (isNaN(vl)) vl = 0; |
|
return vl; |
|
}; |
|
f.toFloat=function(dt){ |
|
var vl; |
|
if(!dt) return 0; |
|
if(isNaN(dt)) vl=parseFloat((dt+'').replace(/\,/g,'')); |
|
else vl = parseFloat(dt); |
|
if (isNaN(vl)) vl = 0; |
|
return vl; |
|
}; |
|
f.toBoolean = function(dt) { |
|
return (dt=='true'||dt>=1)? true:false; |
|
};
|
|
|