123456 |
- // Licensed Materials - Property of IBM
- // IBM Cognos Products: hal
- // (C) Copyright IBM Corp. 2003, 2017.
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- function C_JsCodedDecimal(_hAY){this._hL02={};if(_hAY){this._hL02[0]=_hAY;}this._hBB1=0;this._h7I1=0;};C_JsCodedDecimal._h8I1=15;C_JsCodedDecimal._hBY=-5;C_JsCodedDecimal._hCY=1000000000000000;C_JsCodedDecimal._hDY=-1000000000000000;C_JsCodedDecimal._hDP1="000000000000000";C_JsCodedDecimal._hPS="0000000000";C_JsCodedDecimal.F_SetStructure=function(_h9I1,_hEY){C_JsCodedDecimal._h8I1=_h9I1;C_JsCodedDecimal._hBY=_hEY;C_JsCodedDecimal._hDP1=String("").F_PadLeft("0", _h9I1);C_JsCodedDecimal._hPS=String("").F_PadLeft("0", _h9I1+_hEY);C_JsCodedDecimal._hCY=parseInt("1"+C_JsCodedDecimal._hDP1, 10);C_JsCodedDecimal._hDY=parseInt("-1"+C_JsCodedDecimal._hDP1, 10);};C_JsCodedDecimal.prototype.F_IsNegative=function(){var _h862=this._hL02[this._hBB1];return Boolean(_h862&&_h862<0);};C_JsCodedDecimal.prototype.F_ToString=function(){return this.F_FormatValue();};C_JsCodedDecimal.prototype.F_ToNumber=function(){return parseFloat(this.F_FormatValue());};C_JsCodedDecimal.prototype.F_Equals=function(_h6V1){return(this.F_Compare(_h6V1)==0);};C_JsCodedDecimal.prototype.F_GreaterThan=function(_h6V1){return(this.F_Compare(_h6V1)==1);};C_JsCodedDecimal.prototype.F_GreaterThanOrEqual=function(_h6V1){var i=this.F_Compare(_h6V1);return((i==1)||(i==0));};C_JsCodedDecimal.prototype.F_LessThan=function(_h6V1){return(this.F_Compare(_h6V1)==-1);};C_JsCodedDecimal.prototype.F_LessThanOrEqual=function(_h6V1){var i=this.F_Compare(_h6V1);return((i==-1)||(i==0));};C_JsCodedDecimal.prototype.F_Compare=function(_h6V1){var _hQ41=this.F_IsNegative();var _hR41=_h6V1.F_IsNegative();if(_hQ41!=_hR41){return _hQ41?-1:1;}if(this._hBB1>_h6V1._hBB1){return _hQ41?-1:1;}else if(this._hBB1<_h6V1._hBB1){return _hQ41?1:-1;}var _hAI1=this._h7I1;if(_hAI1>_h6V1._h7I1){_hAI1=_h6V1._h7I1;}var _h7V1=this._hL02;var _h8V1=_h6V1._hL02;for(var i=this._hBB1; i>=_hAI1;--i){var _hM02=_h7V1[i];var _hN02=_h8V1[i];_hM02=_hM02?_hM02:0;_hN02=_hN02?_hN02:0;if(_hM02>_hN02){return 1;}else if(_hM02<_hN02){return-1;}}if(this._h7I1>_h6V1._h7I1){return _hQ41?-1:1;}else if(this._h7I1<_h6V1._h7I1){return _hQ41?1:-1;}return 0;};C_JsCodedDecimal._h1F2="9".charCodeAt(0);C_JsCodedDecimal.prototype.F_FormatValue=function(_hO02){if(!_hO02){_hO02=this._hPJ();}var _hP02=this._hL02;var _hCB1=this._hBB1;var _hAI1=this._h7I1;var _hDB1=this.F_IsNegative();var _hFY=[];for(var i=_hCB1; i<0;++i){_hFY.push(C_JsCodedDecimal._hDP1);}for(var i=_hCB1; i>=_hAI1;--i){var _h862=_hP02[i];if(_h862){var _h962=_h862.toString();if(_h962.charAt(0)=="-"){_h962=_h962.substr(1);}if(C_JsCodedDecimal._h8I1>_h962.length){_h962=_h962.F_PadLeft("0", C_JsCodedDecimal._h8I1);}_hFY.push(_h962);}else{_hFY.push(C_JsCodedDecimal._hDP1);}}var _hQ02=_hFY.join("");_hQ02.match(/^(0*)(.*?)(0*)$/);_hQ02=RegExp.$2;var _hS41=RegExp.$3.length;var _hA62=_hAI1*C_JsCodedDecimal._h8I1+C_JsCodedDecimal._hBY + _hO02.M_iScale+_hS41;var _hEB1=_hQ02.length+_hA62;if(_hEB1<0){_hQ02=_hQ02.F_PadLeft("0", _hQ02.length-_hEB1);_hEB1=0;}else if(_hEB1>_hQ02.length){_hQ02=_hQ02.F_PadRight("0", _hEB1);}var _h23=(_hO02.M_iNumberOfDecimals!=undefined);if(_h23){var _hHG=_hQ02.length-_hEB1;if(_hHG>_hO02.M_iNumberOfDecimals){var _hBZ1=_hEB1+_hO02.M_iNumberOfDecimals;var _hBI1=_hQ02.substr(_hBZ1).replace(/0+$/, "");_hQ02=_hQ02.substr(0, _hBZ1);var _h9V1=false;var _h962=_hBI1.charAt(0);if(_h962>"5"){_h9V1=true;}else if(_h962=="5"){if(_hBI1.length>1){_h9V1=true;}else if(_hQ02){_h9V1=Boolean(parseInt(_hQ02.charAt(_hQ02.length-1), 10)& 1);}}if(_h9V1){var _hQS=[];var _hBZ1=_hQ02.length;for(var i=_hBZ1-1; _h9V1&&i>=0; --i){var _h862=_hQ02.charCodeAt(i);if(_h862==C_JsCodedDecimal._h1F2){_hQS.push("0");}else{_hQS.push(String.fromCharCode(_h862+1));_h9V1=false;}}var _hCI1=[];if(_h9V1){_hCI1.push("1");++_hEB1;}_hCI1.push(_hQ02.substr(0, _hBZ1-_hQS.length));_hCI1.push(_hQS.reverse().join(""));_hQ02=_hCI1.join("");}}else if(_hHG<_hO02.M_iNumberOfDecimals){_hQ02=_hQ02.F_PadRight("0", _hEB1+_hO02.M_iNumberOfDecimals);}}var _hDI1=_hQ02.substr(0, _hEB1);var _hT41=_hQ02.substr(_hEB1);if(!_h23){_hT41=_hT41.replace(/0+$/, "");}_hDI1=_hDI1.replace(/^0+/, "");_hDI1=_hDI1?_hDI1:"0";var _hU41=[];if(_hDB1){_hU41.push(_hO02.M_sNegativeSymbolLeading);}_hU41.push(_hO02.M_sLeadingSymbol);if(_hO02.M_sGroupSeparator&&(_hO02.M_iPrimaryGroupSize<_hDI1.length)){var _hB62=[];var _hQJ=_hDI1.length-_hO02.M_iPrimaryGroupSize;_hB62.push(_hDI1.substr(_hQJ));_hB62.push(_hO02.M_sGroupSeparator);for(var i=_hQJ-_hO02.M_iSecondaryGroupSize; i>0; i -= _hO02.M_iSecondaryGroupSize){_hB62.push(_hDI1.substr(i, _hO02.M_iSecondaryGroupSize));_hB62.push(_hO02.M_sGroupSeparator);}_hB62.push(_hDI1.substr(0, i+_hO02.M_iSecondaryGroupSize));_hU41.push(_hB62.reverse().join(""));}else{_hU41.push(_hDI1);}if(_hT41){_hU41.push(_hO02.M_sDecimalSeparator);_hU41.push(_hT41);}_hU41.push(_hO02.M_sTrailingSymbol);if(_hDB1){_hU41.push(_hO02.M_sNegativeSymbolTrailing);}return _hU41.join("");};C_JsCodedDecimal.prototype._hXD=function(_hP02,_hCB1,_hAI1){while((_hCB1>_hAI1)&&!_hP02[_hCB1]){delete _hP02[_hCB1--];}return _hCB1;};C_JsCodedDecimal.prototype.F_Add=function(_h6V1){var _h7V1=this._hL02;var _hV41=this._hBB1;var _hFB1=this._h7I1;var _hQ41=this.F_IsNegative();var _h8V1=_h6V1._hL02;var _hW41=_h6V1._hBB1;var _hGB1=_h6V1._h7I1;var _hR41=_h6V1.F_IsNegative();var _hCB1=(_hV41>_hW41)?_hV41:_hW41;var _hAI1=(_hFB1<_hGB1)?_hFB1:_hGB1;var _hP02={};var _hC62=0;for(var i=_hAI1; i<=_hCB1;++i){var _hM02=_h7V1[i];_hM02=_hM02?_hM02:0;var _hN02=_h8V1[i];_hN02=_hN02?_hN02:0;var _hEP1=_hM02+_hN02+_hC62;if(_hEP1>=C_JsCodedDecimal._hCY){_hEP1-= C_JsCodedDecimal._hCY;_hC62=1;}else if(_hEP1<=C_JsCodedDecimal._hDY){_hEP1-= C_JsCodedDecimal._hDY;_hC62=-1;}else{_hC62=0;}if(_hEP1){_hP02[i]=_hEP1;}}if(_hC62){_hP02[++_hCB1]=_hC62;}if(_hQ41!=_hR41){_hCB1=this._hXD(_hP02,_hCB1,_hAI1);if(_hP02[_hCB1]&&_hP02[_hCB1]<0){for(var i=_hAI1; i<=_hCB1;++i){var _h862=_hP02[i];if(_h862&&_h862>0){_h862=_h862+C_JsCodedDecimal._hDY;var _hEI1=_hP02[i+1];_hP02[i+1]=_hEI1?(_hEI1+1):1;}if(_h862){_hP02[i]=_h862;}else{delete _hP02[i];}}}else{for(var i=_hAI1; i<=_hCB1;++i){var _h862=_hP02[i];if(_h862&&_h862<0){_h862=_h862+C_JsCodedDecimal._hCY;var _hEI1=_hP02[i+1];_hP02[i+1]=_hEI1?(_hEI1-1):-1;}if(_h862){_hP02[i]=_h862;}else{delete _hP02[i];}}}_hCB1=this._hXD(_hP02,_hCB1,_hAI1);if((_hCB1==_hAI1)&&!_hP02[_hCB1]){delete _hP02[_hCB1];_hCB1=_hAI1=0;}}while((_hAI1<_hCB1)&&!_hP02[_hAI1]){delete _hP02[_hAI1++];}var _hR02=new C_JsCodedDecimal();_hR02._hL02=_hP02;_hR02._hBB1=_hCB1;_hR02._h7I1=_hAI1;return _hR02;};C_JsCodedDecimal.prototype.F_Subtract=function(_h6V1){return C_JsCodedDecimal.F_ParseDecimal((parseFloat(this.F_ToString())-parseFloat(_h6V1.F_ToString())).toString(10));};C_JsCodedDecimal.prototype.F_Divide=function(_h6V1){return C_JsCodedDecimal.F_ParseDecimal((parseFloat(this.F_ToString())/ parseFloat(_h6V1.F_ToString())).toString(10));};C_JsCodedDecimal.prototype.F_DivideByInt=function(i){return C_JsCodedDecimal.F_ParseDecimal((parseFloat(this.F_ToString())/ i).toString(10));};C_JsCodedDecimal.prototype.F_Multiply=function(_h6V1){return C_JsCodedDecimal.F_ParseDecimal((parseFloat(this.F_ToString())*parseFloat(_h6V1.F_ToString())).toString(10));};C_JsCodedDecimal.prototype.F_Mod=function(_h6V1){return C_JsCodedDecimal.F_ParseDecimal((parseFloat(this.F_ToString())% parseFloat(_h6V1.F_ToString())).toString(10));};C_JsCodedDecimal.prototype.F_Clone=function(){return C_JsCodedDecimal.F_ParseDecimal(this.F_ToString());};C_JsCodedDecimal.F_ParseDecimal=function(s){if(!s){return null;}s=s.replace(/\s*/g, "");if(!s){return null;}var _hT92;var _hDI1;var _hT41;var _hFP1;if(s.match(/^([\+\-]?)0*(\d*?)\.(\d*?)0*([eE][\+\-]?\d+)?$/)){_hT92=(RegExp.$1=="-")?"-":"";_hDI1=RegExp.$2;_hT41=RegExp.$3;_hFP1=RegExp.$4;}else if(s.match(/^([\+\-]?)0*(\d*?)([eE][\+\-]?\d+)?$/)){_hT92=(RegExp.$1=="-")?"-":"";_hDI1=RegExp.$2;_hFP1=RegExp.$3;}else{return null;}_hDI1=_hDI1?_hDI1:"";_hT41=_hT41?_hT41:"";var _hGP1=_hFP1?parseInt(_hFP1.substr(1), 10): 0;var _hHB1=_hGP1-_hT41.length;var _hGY=_hDI1+_hT41;var _hAI1=0;var _hA62=C_JsCodedDecimal._hBY;while(_hA62>_hHB1){_hA62-= C_JsCodedDecimal._h8I1;--_hAI1;}var _hCB1=_hAI1;_hGY=_hGY.F_PadRight("0", _hGY.length-_hA62+_hHB1);var _hR02=new C_JsCodedDecimal();var _hP02=_hR02._hL02;var _hEI1=_hCB1;var _hBZ1=_hGY.length;while(_hBZ1>0){_hCB1=_hEI1++;if(_hBZ1<=C_JsCodedDecimal._h8I1){var _h862=parseInt(_hT92+_hGY.substr(0, _hBZ1), 10);if(_h862){_hP02[_hCB1]=_h862;}break;}_hBZ1=_hBZ1-C_JsCodedDecimal._h8I1;var _h862=parseInt(_hT92+_hGY.substr(_hBZ1, C_JsCodedDecimal._h8I1), 10);if(_h862){_hP02[_hCB1]=_h862;}}while((_hAI1<_hCB1)&&!_hP02[_hAI1]){delete _hP02[_hAI1++];}_hR02._hBB1=_hCB1;_hR02._h7I1=_hAI1;return _hR02;};C_JsCodedDecimal.prototype._hPJ=function(){if(!this._hRS){C_JsCodedDecimal.prototype._hRS=new C_NumberFormat();}return this._hRS;};
|