Permanently protected module

모듈:수치 변환

Module:ConvertNumeric

-- 서로 다른 숫자 표현 간 변환을 위한 모듈.사용자 설명서는 대화 페이지를 참조하십시오. -- 유닛 테스트는 [[모듈:ConvertNumeric/테스트케이스]]] -- 편집 시 [Module_talk:ConvertNumeric/테스트케이스]]] -- 먼저 [[모듈:ConvertNumeric/sandbox]]], [[Module_talk:ConvertNumeric/sandbox/테스트케이스]]]  국부적 ones_position = {  [0] = '제로',  [1] = '하나',  [2] = '투',  [3] = '3',  [4] = '4',  [5] = '5',  [6] = '6',  [7] = '7',  [8] = '8',  [9] = '나인',  [10] = '10',  [11] = 'eleven',  [12] = 'twelve',  [13] = 'thirteen',  [14] = 'fourteen',  [15] = 'fifteen',  [16] = 'sixteen',  [17] = 'seventeen',  [18] = 'eighteen',  [19] = 'nineteen' }  국부적 ones_position_ord = {  [0] = '제로스',  [1] = '첫 번째',  [2] = '두 번째',  [3] = '제3의',  [4] = '4번째',  [5] = '5번째',  [6] = 'sixth',  [7] = 'seventh',  [8] = 'eighth',  [9] = 'ninth',  [10] = '10번째',  [11] = '열일곱',  [12] = '열두번째',  [13] = '열여섯째,  [14] = '14번째',  [15] = 'fifteenth',  [16] = '16',  [17] = '열여덟째',  [18] = '열여덟 번째',  [19] = '19' }  국부적 ones_position_position_properties = {  [0] = '제로',  [1] = '원스',  [2] = 'twos',  [3] = '삼국지',  [4] = '4',  [5] = 'fives',  [6] = '식스',  [7] = 'sevens',  [8] = '80년대',  [9] = '나인즈',  [10] = 'tens',  [11] = 'elevens',  [12] = 'twelves',  [13] = '제빵사',  [14] = '4대',  [15] = '50명',  [16] = '육십대',  [17] = '진짜',  [18] = '팔십보',  [19] = '나인텐스' }  국부적 십중팔구 = {  [2] = 'twenty',  [3] = 'thirty',  [4] = 'forty',  [5] = 'fifty',  [6] = 'sixty',  [7] = 'seventy',  [8] = 'eighty',  [9] = 'ninety' }  국부적 tens_position_ord = {  [2] = '십분의 일',  [3] = '30',  [4] = '운수십',  [5] = '십분의 일',  [6] = '십분의 일',  [7] = '십분의 일',  [8] = '80번째',  [9] = '십분의 일' }  국부적 tens_position_position_properties = {  [2] = 'twenties',  [3] = 'thirties',  [4] = '운세',  [5] = 'fifties',  [6] = '아기들',  [7] = '아기들',  [8] = '80년대',  [9] = '90년대 }  국부적 무리 = {  [1] = '천',  [2] = '백만',  [3] = '억',  [4] = 'trillion',  [5] = '조금',  [6] = '조금',  [7] = '십칠조',  [8] = '9백억',  [9] = '10억',  [10] = '무조',  [11] = '십조',  [12] = '조금',  [13] = '듀오데커빌리언',  [14] = '조금',  [15] = 'Quattuecillion',  [16] = 'quindecillion',  [17] = '섹스 십조',  [18] = '9억 9천만',  [19] = '10조',  [20] = 'novm10조',  [21] = '1000억',  [22] = '언비건조',  [23] = 'duovigintillion',  [24] = 'tresvigintillion',  [25] = 'Quattuvigintillion',  [26] = 'Ququnabigintillion',  [27] = '수십억',  [28] = '990억',  [29] = '10조',  [30] = 'novmvigintillion',  [31] = '트리거 리무진',  [32] = '10조',  [33] = '듀오트리긴트리긴티리히',  [34] = '제한적',  [35] = 'Quatturigintillion',  [36] = 'Ququentricintillion',  [37] = '수십억',  [38] = '9억 9천만 달러',  [39] = '10ttrigintillion',  [40] = '노벤트리긴트 리히터',  [41] = '수십억',  [51] = 'Quenagintillion',  [61] = 'sexagintillion',  [71] = '9백조',  [81] = '10조',  [91] = 'nonagintillion',  [101] = '천 억',  [102] = '천 억',  [103] = '이중조',  [104] = '1000조',  [111] = '10조',  [112] = '1000억',  [121] = '10조',  [122] = '언비지티컬리온',  [131] = '인접적',  [141] = '인테리어리온',  [151] = '쿼나긴트리온',  [161] = '섹사그린트리온',  [171] = '970억 달러',  [181] = '10세기경',  [191] = '비인테리어리온',  [201] = '2조',  [301] = '1000조',  [401] = '조금',  [501] = '수조',  [601] = '1000억',  [701] = '9천조',  [801] = '10조',  [901] = '농천리온',  [1001] = '수백만', }  국부적 로만_노멀스 = {  I = 1,  V = 5,  X = 10,  L = 50,  C = 100,  D = 500,  M = 1000 }  국부적 engord_injection_end  = {  ['십분의 일'] = 20,  ['30'] = 30,  ['운수십'] = 40,  ['십분의 일'] = 50,  ['십분의 일'] = 60,  ['십분의 일'] = 70,  ['80번째'] = 80,  ['십분의 일'] = 90, }  국부적 eng_ng_content = {  ['twenty'] = 20,  ['thirty'] = 30,  ['forty'] = 40,  ['fifty'] = 50,  ['sixty'] = 60,  ['seventy'] = 70,  ['eighty'] = 80,  ['ninety'] = 90, }  -- 주어진 유효한 로마 숫자(및 일부 유효하지 않은 로마 숫자)를 숫자로 변환.오류 시 { -1, 오류 문자열 }을(를) 반환하십시오. 국부적 기능을 하다 loman_to_numeral(로마인의)  만일 타자를 치다(로마인의) ~= "끈" 그때 돌아오다 -1, "로마의 숫자, 끈이 아니다" 종지부를 찍다  국부적 회전시키다 = 로마인의:역행의()  국부적 기르기 = 진실의  국부적 지난 = 0  국부적 결과 = 0  을 위해 i = 1, #회전시키다 하다   국부적 c = 회전시키다:후보선수(i, i)   국부적 다음에 = 로만_노멀스[c]   만일 다음에 == 못을 박다 그때 돌아오다 -1, "로마의 숫자는 불법적인 성격을 가지고 있다" .. c 종지부를 찍다   만일 다음에 > 지난 그때    결과 = 결과 + 다음에    기르기 = 진실의   그렇지 않으면 다음에 < 지난 그때    결과 = 결과 - 다음에    기르기 = 거짓의   그렇지 않으면 기르기 그때    결과 = 결과 + 다음에   다른    결과 = 결과 - 다음에   종지부를 찍다   지난 = 다음에  종지부를 찍다  돌아오다 결과 종지부를 찍다  -- 0에서 100 사이의 주어진 정수를 영어 텍스트(예: 47 -> 47)로 변환한다. 국부적 기능을 하다 numeral_to_영어_less_100(숫자, 서수의, 복수형의, )  국부적 terminal_ones, terminal_properties  만일 서수의 그때   terminal_ones = ones_position_ord   terminal_properties = tens_position_ord  그렇지 않으면 복수형의 그때   terminal_ones = ones_position_position_properties   terminal_properties = tens_position_position_properties  다른   terminal_ones = ones_position   terminal_properties = 십중팔구  종지부를 찍다   만일 숫자 == 0 그리고  ~= 못을 박다 그때   돌아오다   그렇지 않으면 숫자 < 20 그때   돌아오다 terminal_ones[숫자]  그렇지 않으면 숫자 % 10 == 0 그때   돌아오다 terminal_properties[숫자 / 10]  다른   돌아오다 십중팔구[수학을 하다.(숫자 / 10)] .. '-' .. terminal_ones[숫자 % 10]  종지부를 찍다 종지부를 찍다  국부적 기능을 하다 standard_properties(서수의, 복수형의)  만일 서수의 그때 돌아오다 'th' 종지부를 찍다  만일 복수형의 그때 돌아오다 's 종지부를 찍다  돌아오다 '' 종지부를 찍다  -- 0과 1000 사이의 주어진 정수(현 형식)를 영어 텍스트(예: 47 -> 47)로 변환한다. 국부적 기능을 하다 numeral_to_영어_less_1000(숫자, use_and, 서수의, 복수형의, )  숫자 = 톤넘버(숫자)  만일 숫자 < 100 그때   돌아오다 numeral_to_영어_less_100(숫자, 서수의, 복수형의, )  그렇지 않으면 숫자 % 100 == 0 그때   돌아오다 ones_position[숫자/100] .. '백' .. standard_properties(서수의, 복수형의)  다른   돌아오다 ones_position[수학을 하다.(숫자/100)] .. '100' .. (use_and 그리고 '그리고 ' 또는 '') .. numeral_to_영어_less_100(숫자 % 100, 서수의, 복수형의, )  종지부를 찍다 종지부를 찍다  -- 영어 텍스트 서수를 'zeroth'에서 숫자 [0–99], 그 외 -1로 '9'로 변환한다. 국부적 기능을 하다 영어_to_ordinal(영국인)  국부적 엥그리다 = 끈.하부(영국인 또는 '')   국부적 engord_lt20 = {} -- ones_position_ord{} 키 및 값이 바뀜  을 위해 k, v  쌍들( ones_position_ord ) 하다   engord_lt20[v] = k  종지부를 찍다   만일 engord_lt20[엥그리다] 그때   돌아오다 engord_lt20[엥그리다] - 예: 첫 번째 -> 1  그렇지 않으면 engord_injection_end[엥그리다] 그때   돌아오다 engord_injection_end[엥그리다] - 예: 구십 -> 90  다른   국부적 십수의, 하나 = 끈.매치(엥그리다, '^([a-z]+)[%s%-]+([a-z]+)
                
) 만일 십수의 그리고 하나 그때 국부적 tens_content = eng_ng_content[십수의] 국부적 ones_end = engord_lt20[하나] 만일 tens_content 그리고 ones_end 그때 돌아오다 tens_content + ones_end - 예: 아흔아홉 -> 99 종지부를 찍다 종지부를 찍다 종지부를 찍다 돌아오다 -1 -- 실패함 종지부를 찍다 -- 영어 텍스트의 숫자를 '0'에서 '9-9'로 변환([0–99], 기타 -1). 국부적 기능을 하다 English_to_numeral(영국인) 국부적 엥그리다 = 끈.하부(영국인 또는 '') 국부적 eng_lt20 = { ['싱글'] = 1 } -- ones_position{} 키 & 값이 바뀜 을 위해 k, v 쌍들( ones_position ) 하다 eng_lt20[v] = k 종지부를 찍다 만일 eng_lt20[엥그리다] 그때 돌아오다 eng_lt20[엥그리다] - 예: 1 -> 1 그렇지 않으면 eng_ng_content[엥그리다] 그때 돌아오다 eng_ng_content[엥그리다] - 예: 90 -> 90 다른 국부적 십수의, 하나 = 끈.매치(엥그리다, '^([a-z]+)[%s%-]+([a-z]+)
$$SIDE_BOTTOM$$
    $$BOTTOM$$