[ Nexacro.Number -  format 처리 ]

 

 

/*==+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 * Group : 2. format 지정

 **=++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

 


/******************************************************************************************
 * 기능 : 3자리마다 콤마(,)를 찍어 준다. (화폐 표현)
 * 인자 : obj   : 화폐 단위로 전환하고자 하는 수치
 * 리턴 : 화폐 단위로 전환된 수치
 * 예문 : currencyFormat("7777777");
 *****************************************************************************************/

function gfn_CurrencyFormat(obj, type) {

    if(gfn_IsNull(obj)) return;

 

    var txtNumber = "";

 

    if(obj == '[object]') {

        txtNumber = String(obj.value);

    } else {

        txtNumber = String(obj);

    }

 

    if(!gfn_IsNull(type)) {

        var idxVal = txtNumber.indexOf(".");

        var chkVal = txtNumber.length - idxVal;

        

        if(type == "F") {

            if(idxVal == -1) {

                txtNumber = txtNumber + ".00";

            } else if(chkVal == 2) {

                txtNumber = txtNumber + "0";

            }

        } else {

            var digit = Number(type);

            var suffix1 = ".";

            var suffix2 = "";

            

            if(digit != 0) {

                if(idxVal == -1) {

                    for(var i=0; i<digit; i++) {

                        suffix1 += "0";

                    }

                    txtNumber = txtNumber + suffix1;

                } else if(chkVal >= 2) {

                    for(var j=0; j<digit-chkVal+1; j++) {

                        suffix2 += "0";

                    }

                    txtNumber = txtNumber + suffix2;

                }

            }

        }

    }

 

    var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');

    var arrNumber = txtNumber.split('.');

    var result = "";

    arrNumber[0] += '.';

 

    do {

        arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');

    } while (rxSplit.test(arrNumber[0]));

 

    if(arrNumber.length > 1) {

        result = arrNumber.join('');

    } else {

        result = arrNumber[0].split('.')[0];

    }

 

    if(result.substring(0, 1) == ".") result = "0" + result;

    if(obj == '[object]') {

        obj.value = result;

    }

 

    return result;

}

 

/*******************************************************************************
 ★ 설명
    숫자에 ","를 집어넣기
 ★ Parameter
    1. sNum   : 숫자( 예 : -1234567.89 )
 ★ return
    - 성공 = ","가 들어간 문자열 ( 예 : -1,234,567.89 )
    - 실패 = ""
 ******************************************************************************/

function fn_SetComma(sNum)

{

 var ppos, sDigit, nEnd, nStart=0, sRet="";

 

 if( fn_IsNull(sNum) ) return "";

 

 if( sNum.charAt(0) == "+" || sNum.charAt(0) == "-" )

 {

  sRet += sNum.charAt(0);

  nStart = 1;

 }

 ppos = Pos(sNum, ".", nStart);

 if( ppos < 0 )

  nEnd = sNum.length;

 else

  nEnd = ppos;

 sDigit = sNum.substr(nStart, nEnd-nStart);

 for( pos = 0 ; pos < sDigit.length ; pos ++ )

 {

  if( pos != 0 && (sDigit.length-pos)%3 == 0 )

   sRet += ",";

  sRet += sDigit.charAt(pos);

 }

 sRet += sNum.substr(nEnd);

 

 return sRet;

}


/*******************************************************************************
 ★ 설명
    정수인 nStart ~ nEnd의 범위에 있는 숫자에 대하여 random값을 return한다.
 ★ Parameter
    1. nStart : 시작숫자 ( 단, 정수, 만일 정수가 아니면 Math.floor(nStart)를 적용함)
    2. nEnd   : 끝숫자 ( 단, 정수, 만일 정수가 아니면 Math.floor(nStart)를 적용함)
 ★ return
    - 성공 = nStart ~ nEnd범위 중 random숫자 (단, nStart, nEnd도 포함됨)
    - 실패 = -1
 ★ 목적
    1. Math.random()이 0 ~ 1사이만 나와서 불편해서 만들었음
    2. Math.random()은 처음에 0.5근처만 나와서 만들었음
 ★ 주의사항
    nStart, nEnd는 정수임에 주의
 ******************************************************************************/

function fn_Rand(nStart, nEnd)

{

 var range_unit, rand, tmp;

 

 if( fn_IsNull(nStart) || fn_IsNull(nEnd) ) return -1;

 

 nStart = Math.floor(nStart);

 nEnd = Math.floor(nEnd);

 if( nStart > nEnd )

 {

  tmp = nStart;

  nStart = nEnd;

  nEnd = tmp;

 }

 range_unit = nEnd-nStart+1;

 

 var dt = new Date();

 rand = (dt.getMilliseconds()+(Math.random()*2000))/3000;

 

 return Math.floor(rand*range_unit*2)%range_unit+nStart;

}

 

/*******************************************************************************
 ★ 설명
    Degree를 Radian으로 변환
 ★ parameter
    1. nDegree : Degree값(예: 180, 90,...)
 ★ return
    1. 성공 = Radian(예:Math.PI, Math.PI/2,...)
    2. 실패 = NaN
******************************************************************************/

function fn_Deg2Rad(nDegree)

{

 return (Math.PI/180)*nDegree;

}

 

/*******************************************************************************
 ★ 설명
    Radian을 Degree로 변환
 ★ parameter
    1. nRadian : Radian값(예:Math.PI, Math.PI/2,...)
 ★ return
    1. 성공 = Degree(예: 180, 90,...)
    2. 실패 = NaN
******************************************************************************/

function fn_Rad2Deg(nRadian)

{

 return (180/Math.PI)*nRadian;

}

 

☞  

 

☞  

 
 
 
 

  

'Nexacro-Function > Number' 카테고리의 다른 글

Nexacro.Number - 기타  (0) 2017.01.28
Nexacro.Number - 숫자 검증  (0) 2017.01.28
Posted by 농부지기
,