/*************************************************************************
************************* 금액 관련 함수 *********************************
**************************************************************************/
function removeComma(input) {
return input.value.replace(/,/gi,"");
} function insertComma(str) {
str = str + "";
var tmpStr = str+"";
var underComma = "";
if (str.indexOf(".") >=0) {
tmpStr = str.substring(0,tmpStr.indexOf("."));
underComma = "."+str.substring(str.indexOf(".")+1, str.length);
}
tmpStr = str.substring(0,tmpStr.indexOf("."));
underComma = "."+str.substring(str.indexOf(".")+1, str.length);
}
var len = tmpStr.length;
var resultValue = "";
var sign = "";
if (str.substring(0,1) == "-") {
sign = "-";
len = len -1;
tmpStr = tmpStr.substring(1);
}
for (var i=0 ; i<len ; i++) {
if (i > 0 && (i % 3) == 0 )
resultValue = "," + resultValue;
var resultValue = "";
var sign = "";
if (str.substring(0,1) == "-") {
sign = "-";
len = len -1;
tmpStr = tmpStr.substring(1);
}
for (var i=0 ; i<len ; i++) {
if (i > 0 && (i % 3) == 0 )
resultValue = "," + resultValue;
resultValue = tmpStr.charAt(len - 1 - i) + resultValue;
}
return sign+resultValue+underComma;
}
}
return sign+resultValue+underComma;
}
/*************************************************************************
함수명 : fmtAmount
기 능 : 숫자 스트링에 "," format을 줌
인 수 : str - formatting하고자 하는 스트링
리턴값 :
**************************************************************************/
function fmtAmount(str) {
var saveStr = "" + str;
if (saveStr.length < 4) return str;
var revStr = reverseStr(saveStr);
var newStr = '';
for (var i=0;i<revStr.length;i++) {
if (i>0 && (i%3)==0) newStr += ',';
newStr += revStr.charAt(i);
}
return reverseStr(newStr);
}
함수명 : fmtAmount
기 능 : 숫자 스트링에 "," format을 줌
인 수 : str - formatting하고자 하는 스트링
리턴값 :
**************************************************************************/
function fmtAmount(str) {
var saveStr = "" + str;
if (saveStr.length < 4) return str;
var revStr = reverseStr(saveStr);
var newStr = '';
for (var i=0;i<revStr.length;i++) {
if (i>0 && (i%3)==0) newStr += ',';
newStr += revStr.charAt(i);
}
return reverseStr(newStr);
}
/*************************************************************************
함수명 : delFmtAmount
기 능 : 숫자 스트링에서 ","을 제거함
인 수 : str - 변환대상 스트링
리턴값 :
**************************************************************************/
function delFmtAmount(str) {
str = rmChar(str, ',');
if (!chkNumber(str, "")) return false;
return str;
}
함수명 : delFmtAmount
기 능 : 숫자 스트링에서 ","을 제거함
인 수 : str - 변환대상 스트링
리턴값 :
**************************************************************************/
function delFmtAmount(str) {
str = rmChar(str, ',');
if (!chkNumber(str, "")) return false;
return str;
}
/*************************************************************************
함수명 : roundAllFloat
기 능 : 실수 중 지정된 소수점 이하 자리 올림
인 수 : floatNum - 처리대상 실수
intPosition - 올림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundAllFloat( floatNum, intPosition ) {
var decimalPosition = Math.pow( 10.0, intPosition );
함수명 : roundAllFloat
기 능 : 실수 중 지정된 소수점 이하 자리 올림
인 수 : floatNum - 처리대상 실수
intPosition - 올림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundAllFloat( floatNum, intPosition ) {
var decimalPosition = Math.pow( 10.0, intPosition );
var returnValue = ( Math.ceil( floatNum * decimalPosition ) ) / decimalPosition ;
return returnValue;
}
}
/*************************************************************************
함수명 : roundHalfFloat
기 능 : 실수 중 지정된 소수점 이하 자리 반올림
인 수 : floatNum - 처리대상 실수
intPosition - 반올림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundHalfFloat( floatNum, intPosition ) {
var decimalPosition = Math.pow( 10.0, intPosition );
함수명 : roundHalfFloat
기 능 : 실수 중 지정된 소수점 이하 자리 반올림
인 수 : floatNum - 처리대상 실수
intPosition - 반올림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundHalfFloat( floatNum, intPosition ) {
var decimalPosition = Math.pow( 10.0, intPosition );
var returnValue = ( Math.round( floatNum * decimalPosition ) ) / decimalPosition ;
return returnValue;
}
}
/*************************************************************************
함수명 : roundCutFloat
기 능 : 실수 중 지정된 소수점 이하 자리 버림
인 수 : floatNum - 처리대상 실수
intPosition - 버림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundCutFloat( floatNum, integerNum ) {
//var sTargetFloat = Float.toString(floatNum);
//var stk = new StringTokenizer(sTargetFloat, ".");
//var stk = new StringTokenizer(floatNum, ".");
//var sIntPart = stk.nextToken();
//var sFloPart = stk.nextToken();
함수명 : roundCutFloat
기 능 : 실수 중 지정된 소수점 이하 자리 버림
인 수 : floatNum - 처리대상 실수
intPosition - 버림하고자하는 자릿수
리턴값 :
**************************************************************************/
function roundCutFloat( floatNum, integerNum ) {
//var sTargetFloat = Float.toString(floatNum);
//var stk = new StringTokenizer(sTargetFloat, ".");
//var stk = new StringTokenizer(floatNum, ".");
//var sIntPart = stk.nextToken();
//var sFloPart = stk.nextToken();
//if(integerNum > sFloPart.length()) return floatNum;
//sFloPart = sFloPart.substring(0, integerNum);
//var sReturnFloat = sIntPart + "." + sFloPart;
//var sReturnFloat = sIntPart + "." + sFloPart;
//return Float.parseFloat(sReturnFloat);
var vPeriodPos = floatNum.toString().indexOf(".");
var sIntPart = floatNum.toString().substring(0, vPeriodPos);
var sFloPart = floatNum.toString().substring(vPeriodPos + 1);
var sIntPart = floatNum.toString().substring(0, vPeriodPos);
var sFloPart = floatNum.toString().substring(vPeriodPos + 1);
if(vPeriodPos == -1) return floatNum;
sFloPart = sFloPart.substring(0, integerNum);
var sReturnFloat = sIntPart + "." + sFloPart;
return parseFloat(sReturnFloat);
}
}
/*************************************************************************
함수명 : toMoney
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다.
인 수 : text 박스명
리턴값 : 없음
**************************************************************************/
function toMoney(vObj)
{
var txtObj = rmChar(vObj.value, ",");
if(isNaN(txtObj))
{
alert("숫자를 입력하십시오."); vObj.focus(); return;
}
var sObj = Number(!txtObj?0:txtObj);
vObj.value = fmtAmount(sObj);
}
/*************************************************************************
함수명 : formatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - 숫자를 입력하는 text Object
hanObj - 한글로 표시해줄 Text Object
howManyUnderDot - 소숫점 이하 자리수(소수점이하입력받지 않을 시에는 입력하지말것)
리턴값 : 없음
**************************************************************************/
function formatNumber(numObj,hanObj,howManyUnderDot)
{
//문자열에서 컴마를 없앰
var txtObj = rmChar(numObj.value, ",");
if(txtObj == ""){
if(hanObj != null) hanObj.value = "";
return;
}
if(isNaN(txtObj)){
alert("숫자를 입력하십시오."); numObj.value = ""; numObj.focus(); return;
}
함수명 : formatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - 숫자를 입력하는 text Object
hanObj - 한글로 표시해줄 Text Object
howManyUnderDot - 소숫점 이하 자리수(소수점이하입력받지 않을 시에는 입력하지말것)
리턴값 : 없음
**************************************************************************/
function formatNumber(numObj,hanObj,howManyUnderDot)
{
//문자열에서 컴마를 없앰
var txtObj = rmChar(numObj.value, ",");
if(txtObj == ""){
if(hanObj != null) hanObj.value = "";
return;
}
if(isNaN(txtObj)){
alert("숫자를 입력하십시오."); numObj.value = ""; numObj.focus(); return;
}
var dotPoint = getPointOfDot(txtObj);
if(dotPoint == null){ // 정수형으로입력한경우
var longPart = Number(!txtObj?0:txtObj);
numObj.value = fmtAmount(longPart);
}else{ // 소숫점 포함
if(howManyUnderDot == null || howManyUnderDot == "" || howManyUnderDot == 0){
alert("소숫점을 입력할 수 없습니다.");
return;
}
var longPart = Number(!txtObj.substring(0,dotPoint)?0:txtObj.substring(0,dotPoint));
var underDotPart = txtObj.substring(dotPoint+1);
if(underDotPart.length > howManyUnderDot){
alert("소숫점 이하 "+howManyUnderDot+"번째 자리까지 입력 가능합니다.");
underDotPart = underDotPart.substring(0,howManyUnderDot);
}
numObj.value = fmtAmount(longPart)+"."+underDotPart;
}
if(dotPoint == null){ // 정수형으로입력한경우
var longPart = Number(!txtObj?0:txtObj);
numObj.value = fmtAmount(longPart);
}else{ // 소숫점 포함
if(howManyUnderDot == null || howManyUnderDot == "" || howManyUnderDot == 0){
alert("소숫점을 입력할 수 없습니다.");
return;
}
var longPart = Number(!txtObj.substring(0,dotPoint)?0:txtObj.substring(0,dotPoint));
var underDotPart = txtObj.substring(dotPoint+1);
if(underDotPart.length > howManyUnderDot){
alert("소숫점 이하 "+howManyUnderDot+"번째 자리까지 입력 가능합니다.");
underDotPart = underDotPart.substring(0,howManyUnderDot);
}
numObj.value = fmtAmount(longPart)+"."+underDotPart;
}
// 한글로표시해줄 텍스트박스를 넘겨준 경우 한글로 표시해준다.
if(hanObj != null){
// 소숫점 이상 부분 한글변환
hanObj.value = longPart;
var hanLongPart = convHanAMT(hanObj.value);
// 소숫점 이하 부분 한글변환
if(underDotPart != null){
hanObj.value = underDotPart;
var hanUnderDotPart = convHanAMT(hanObj.value);
}
// 합쳐서 Display
if(longPart != "") hanObj.value = hanLongPart + "원";
if(underDotPart != null && underDotPart != "" && underDotPart != "0" && underDotPart != "00") hanObj.value = hanObj.value + " " + hanUnderDotPart + "전";
}
}
if(hanObj != null){
// 소숫점 이상 부분 한글변환
hanObj.value = longPart;
var hanLongPart = convHanAMT(hanObj.value);
// 소숫점 이하 부분 한글변환
if(underDotPart != null){
hanObj.value = underDotPart;
var hanUnderDotPart = convHanAMT(hanObj.value);
}
// 합쳐서 Display
if(longPart != "") hanObj.value = hanLongPart + "원";
if(underDotPart != null && underDotPart != "" && underDotPart != "0" && underDotPart != "00") hanObj.value = hanObj.value + " " + hanUnderDotPart + "전";
}
}
function getPointOfDot(str)
{
for(var i=0; i<str.length; i++){
if(str.substring(i,i+1) == ".") return i;
}
}
{
for(var i=0; i<str.length; i++){
if(str.substring(i,i+1) == ".") return i;
}
}
function bidTrimLastDot(numObj)
{
var txtObj = numObj.value;
if(txtObj == "") return;
if(txtObj.substring(txtObj.length-1,txtObj.length) == "."){
numObj.value = txtObj.substring(0,txtObj.length-1);
}
}
{
var txtObj = numObj.value;
if(txtObj == "") return;
if(txtObj.substring(txtObj.length-1,txtObj.length) == "."){
numObj.value = txtObj.substring(0,txtObj.length-1);
}
}
/*************************************************************************
함수명 : unformatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - Formatted된 숫자가 들어 있는 text Object
리턴값 : 없음
**************************************************************************/
function unformatNumber(numObj)
{
numObj.value = rmChar(numObj.value,",");
}
함수명 : unformatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - Formatted된 숫자가 들어 있는 text Object
리턴값 : 없음
**************************************************************************/
function unformatNumber(numObj)
{
numObj.value = rmChar(numObj.value,",");
}
/*************************************************************************
함수명 : unformatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - Formatted된 숫자가 들어 있는 text Object
리턴값 : unformatted 문자열
**************************************************************************/
function getUnformatNumber(numObj)
{
var str = numObj.value;
str = rmChar(str,",");
return str;
}
함수명 : unformatNumber
기 능 : 금액 입력을 체크하고 천단위 "," 표시를 한다. 단가제인 경우 소숫점이하2째자리까지 입력받도록한다.
인 수 : numObj - Formatted된 숫자가 들어 있는 text Object
리턴값 : unformatted 문자열
**************************************************************************/
function getUnformatNumber(numObj)
{
var str = numObj.value;
str = rmChar(str,",");
return str;
}
/*************************************************************************
함수명 : calc()
기 능 : 해당 수식의 결과를 정확히 계산해서 원하는 자리에서 절사하는 함수
인 수 : expression - 해당 수식
digit - 절사 위치
리턴값 :
**************************************************************************/
function calc(expression, digit) {
함수명 : calc()
기 능 : 해당 수식의 결과를 정확히 계산해서 원하는 자리에서 절사하는 함수
인 수 : expression - 해당 수식
digit - 절사 위치
리턴값 :
**************************************************************************/
function calc(expression, digit) {
var vRetVal;
var n;
var n;
vRetVal = String(eval(expression));
if (vRetVal.length > 16) {
n=vRetVal.indexOf(".");
if (n > 0) n=vRetVal.length-n-2;
if (n > 0) vRetVal=Math.round(eval(vRetVal)*Math.pow(10, n))/Math.pow(10, n);
}
n=vRetVal.indexOf(".");
if (n > 0) n=vRetVal.length-n-2;
if (n > 0) vRetVal=Math.round(eval(vRetVal)*Math.pow(10, n))/Math.pow(10, n);
}
vRetVal = roundCutFloat(vRetVal, digit);
return vRetVal;
}
/*************************************************************************
함수명 : calcRound()
기 능 : 해당 수식의 결과를 정확히 계산해서 원하는 자리에서 반올림하는 함수
인 수 : expression - 해당 수식
digit - 절사 위치
리턴값 :
**************************************************************************/
function calcRound(expression, digit) {
함수명 : calcRound()
기 능 : 해당 수식의 결과를 정확히 계산해서 원하는 자리에서 반올림하는 함수
인 수 : expression - 해당 수식
digit - 절사 위치
리턴값 :
**************************************************************************/
function calcRound(expression, digit) {
var vRetVal;
var n;
var n;
vRetVal = String(eval(expression));
if (vRetVal.length > 16) {
n=vRetVal.indexOf(".");
if (n > 0) n=vRetVal.length-n-2;
if (n > 0) vRetVal=Math.round(eval(vRetVal)*Math.pow(10, n))/Math.pow(10, n);
}
n=vRetVal.indexOf(".");
if (n > 0) n=vRetVal.length-n-2;
if (n > 0) vRetVal=Math.round(eval(vRetVal)*Math.pow(10, n))/Math.pow(10, n);
}
vRetVal = roundHalfFloat(vRetVal, digit);
'Programming > Java Script' 카테고리의 다른 글
부모 윈도우 접근 (0) | 2010.07.14 |
---|---|
새로고침 방지 (0) | 2010.06.24 |
[스크랩] 문자 관련 함수 (0) | 2010.03.26 |
[스크랩] 숫자 관련 함수 (0) | 2010.03.26 |
[스크랩] 날짜 관련 함수 (0) | 2010.03.26 |
[스크랩] 기타 유틸 함수 (0) | 2010.03.26 |
[스크랩] 팝업 관련 함수 (0) | 2010.03.26 |
[스크랩] 유용한 함수들 (0) | 2010.03.26 |
항상따라다니는 Div창 & 자동 창 크기 설정 스크립트 (0) | 2010.03.23 |
Window 객체 속성 (0) | 2010.03.23 |