개인 자료란 (JE)

  서버 커뮤니티

Profile Flashback 대표칭호 없음
Profile

질문하기 스크립트

숫자를 만 단위 한글로 어떻게 계산할 수 있을까요?

2020.11.01 조회 수 482 추천 수 0
이해도 1.16 
게임버전 (JE) 페이퍼 
스크립트 애드온 2.4.1 

숫자를 만, 억까지 만 단위 한글로 찍는 방법이 있을까요?

숫자 사이 세자리 단위로 콤마(,)를 찍는 스크립트와 원리는 비슷해보이는데 계산이 쉽지 않네요.

늘 답변에 수고하십니다 : )

2개의 댓글

스크립터브혼
2020.11.01

세자리 수 마다 콤마를 찍는 코드는  제 블로그에 포스팅 한 적 이 있습니다.

세자리 수 마다 콤마를 찍는 것을 수만 바꿔 네자리 수 마다 찍으면 되고, 찍히는 문자를 콤마가 아닌 한글로 바꾸시면 됩니다.
1의 자리부터 자리를 찍으니 만, 억, 조, 경... 순으로 찍힐것입니다.
또한 정수(integer)타입은 최대 1백경 자리수 까지만 저장 할 수 있기때문에 더 큰 자릿수는 필요없습니다.


function setMoneyUnit(n:number) :: text:
    set {_t} to "%{_n}%"
    loop round up length of {_t} / 3 times:
        set {_l} to last 3 characters of {_t}
        set {_t} to first length of {_t} - 3 characters of {_t}
        if loop-number = 1:
            set {_r} to "%{_l}%"
        else:
            set {_r} to "%{_l}%,%{_r}%"
    return {_r}

이 코드가 예전에 포스팅한 세자리수 마다 찍는 코드입니다.


function setMoneyUnitKr(n:number) :: text:
    set {_t} to "%{_n}%"
    set {_char::*} to "만" and "억", "조", "경"
    set {_loop} to (round up length of {_t} / 4) - 1
    loop integers from 0 to {_loop}:
        set {_l} to last 4 characters of {_t}
        set {_t} to first length of {_t} - 4 characters of {_t}
        if {_r} is not set:
            set {_r} to {_l}
        else:
            set {_r} to join {_l} and {_char::%loop-number%}, {_r}
    return {_r}

네자리수 마다 찍히게 바꾼 코드입니다.

> 2239467803479630245 → 223경 9467조8034억7963만0245

Flashback
2020.11.01
@스크립터브혼

정말 도움이 됐습니다! 감사합니다 :)

뉴스 및 창작물
/files/thumbnails/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2