숫자를 문자로 바꾸기 1234=>일천이백삼십사

이 함수의 사용목적은
1,223,445 => 일백이십이만삼천사백사십오
와 같은 문자로 바꾸어 주는 것인데

다른 소스도 있는것 같았지만
정수에 대해서만 처리를 하다보니 자료형 한도값에 걸리는 소스뿐이어서
저에겐 사용 불능이었다는…

일단 문자형으로 숫자들을 입력넣으면 에러 없이 돌아값니다.
뭐 작은 일억 정도의 작은 수는 정수형으로도 상관 없구요

소수점을 읽는 부분은 저한테 필요가 없어서…생략…
그럼…

##########################################################
## numtotext함수 ##
## infomation to use ##
## 숫자를 한글로 바꾸기 위한 함수 ##
## first Written 2002-03-26 ##
##########################################################

function numtotext($num) {
//선언
$text =”;

$dot_symbol = array(
‘4’ => “만”,
‘8’ => “억”,
’12’ => “조”,
’16’ => “경”,
’20’ => “해”,
’24’ => “시”,
’28’ => “양”,
’32’ => “구”,
’36’ => “간”,
’40’ => “정”,
’44’ => “재”,
’48’ => “극”,
’52’ => “항하사”,
’56’ => “아승지”,
’60’ => “나유타”,
’64’ => “불가사의”,
’68’ => “무량대수”
);

$power_symbol = array(
‘0’ => “”,
‘1’ => “십”,
‘2’ => “백”,
‘3’ => “천”
);

$text_symbol = array(
‘0’ => “”,
‘1’ => “일”,
‘2’ => “이”,
‘3’ => “삼”,
‘4’ => “사”,
‘5’ => “오”,
‘6’ => “육”,
‘7’ => “칠”,
‘8’ => “팔”,
‘9’ => “구”
);
//음수 여부 확인
if(substr($num,0,1) == ‘-‘) {
$num = substr($num ,1);
$text .= ‘마이너스’;
}
//전체 자리수 확인
$length_of_num = strlen($num);
//숫자 표현 여부 확인
if($length_of_num > 72) {
$text = “존재할 수 없는 수치 입니다.”;
}else{ ####0000
//실행
for ($k=0; $k< $length_of_num; $k++) {
$striped_value = substr($num, $k, 1);

$text .= $text_symbol[$striped_value];

$power_value = ($length_of_num – $k -1)%4;
if ($striped_value <> 0)
$text .= $power_symbol[$power_value];

if ($power_value == 0)
$text .= $dot_symbol[$length_of_num – $k -1];
}

} ####0000
return $text;
}
?>

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다