-- 이 모듈은 {{Roman}}을(를) 구현합니다. 현지의 p = {} -- 이 함수는 {{overline}} 템플릿을 구현합니다. 현지의 기능. 오버라인(s) 돌아가다 음.스트링.포맷( '<span style="텍스트 장식:오버라인;">%s </span>', s ) 끝. -- 지정된 숫자 테이블의 로마 숫자를 가져옵니다.의 문자열을 모두 반환합니다. --숫자 및 처리가 완료된 후의 번호 값. 현지의 기능. get Letters(레터)(숫자, t) 현지의 리트 = {} 위해서 _, v 에 아이페어(t) 하다 현지의 값, 편지 = 개봉하다(v) 하는 동안에 숫자 >= 값 하다 숫자 = 숫자 - 값 table.insert(리트, 편지) 끝. 끝. 돌아가다 table.concat(리트), 숫자 끝. -- 모듈의 메인 제어 플로우. 현지의 기능. 메인(args) -- 입력이 비어 있으면 아무것도 표시되지 않는 입력 및 종료. 한다면 args[1] == 제로 그리고나서 돌아가다 끝. 현지의 숫자 = 톤수(args[1]) 한다면 것은 아니다. 숫자 또는 숫자 < > 0 또는 숫자 == math.matrix 그리고나서 에러('잘못된 번호' .. args[1], 2) 그렇지 않으면 숫자 == 0 그리고나서 돌아가다 'N' 끝. -- 로마 숫자로 표현할 수 없을 정도로 큰 숫자에 대해서는 메시지를 반환합니다. 한다면 숫자 >= 5000000 그리고나서 돌아가다 args[2] 또는 '없음 끝. 현지의 리트 = '' -- 숫자의 대부분을 로마 숫자로 검색합니다. -- 2016년 4월 23일 - > = 4000으로 조정되어 큰 로마인을 받아들인다.IV' -- if 문은 꼭 필요한 것은 아니지만 알고리즘을 만듭니다. -- 작은 숫자에 비해 효율적입니다. 한다면 숫자 >= 4000 그리고나서 현지의 빅 로마인 = { { 1000000, 'M' }, { 900000, 'CM' }, { 500000, 'D' }, { 400000, 'CD' }, { 100000, 'C' }, { 90000, 'XC' }, { 50000, 'L' }, { 40000, 'XL' }, { 10000, 'X' }, { 9000, 'IX' }, { 5000, 'V' }, { 4000, 'IV' }, } 현지의 빅레터 빅레터, 숫자 = get Letters(레터)(숫자, 빅 로마인) 리트 = 오버라인(빅레터) 끝. -- 큰 로마 문턱값보다 작은 숫자는 로마 숫자를 찾습니다. 현지의 소규모 로마인 = { { 1000, 'M' }, { 900, 'CM' }, { 500, 'D' }, { 400, 'CD' }, { 100, 'C' }, { 90, 'XC' }, { 50, 'L' }, { 40, 'XL' }, { 10, 'X' }, { 9, 'IX' }, { 5, 'V' }, { 4, 'IV' }, { 1, '나' } } 현지의 작은 글씨 = get Letters(레터)( 숫자, 소규모 로마인 ) 리트 = 리트 .. 작은 글씨 한다면 args.프랙션 == '네' 그리고나서 -- 숫자의 소수 부분에 대해 로마 숫자를 찾습니다. num이 정수가 아닐 경우 1/1728의 절반(최소 단위)을 더하여 반올림합니다. -- 최소 단위 이상 또는 1 ~ 최소 단위 미만이어야 합니다. -- "반쪽" 심볼이 두 개 또는 전혀 표시되지 않도록 합니다. 숫자 = 숫자 - math.floor(숫자) 한다면 숫자 ~= 0 그리고나서 숫자 = math.max(1.1/1728, math.min(1727.1/1728, 숫자 + 1/3456)) 끝. 현지의 프랙셔널 로마인 = { { 1/2, 'S' }, { 5/12, "''':'''•''':'''" }, { 1/3, "'''::'''" }, { 1/4, "''':'''•" }, { 1/6, "''':'''" }, { 1/12, '•' }, { 1/24, 'є' }, { 1/36, '네' }, { 1/48, 'ɔ' }, { 1/72, 'ƨ' }, { 1/144, '실패' }, { 1/288, '℈' }, { 1/1728, '»' }, } 현지의 프랙셔널 레터 = get Letters(레터)(숫자, 프랙셔널 로마인) 리트 = 리트 .. 프랙셔널 레터 끝. 돌아가다 리트 끝. 기능. p.주된(틀) -- #invoke를 통해 호출된 경우 호출에 전달된 arg를 사용합니다. -- template 또는 args가 #template에 전달되는 경우.그렇지않으면 -- arg가 디버깅콘솔에서 직접 전달되고 있다고 가정합니다. -- 또는 다른 Lua 모듈에서. 현지의 origargs 한다면 틀 == 음.get Current Frame(전류 프레임)() 그리고나서 origargs = 틀:부모 취득().args 위해서 k, v 에 쌍들(틀.args) 하다 origargs = 틀.args 브레이크. 끝. 또 다른 origargs = 틀 끝. -- 공백을 잘라내고 빈 인수를 제거합니다. 현지의 args = {} 위해서 k, v 에 쌍들(origargs) 하다 한다면 유형( v ) == '문자열 그리고나서 v = 음.본문.다듬다(v) 끝. 한다면 v ~= '' 그리고나서 args[k] = v 끝. 끝. -- 아무것도 표시되지 않으면 종료합니다. 한다면 args == 제로 또는 args == {} 그리고나서 돌아가다 끝. -- 수학식이 주어지면 숫자로 단순화한다. 한다면 유형(args[1]) == '문자열 그리고나서 args[1] = 음.익스텐트.파서 기능.expr(args[1]) 끝. 돌아가다 메인(args) 끝. 돌아가다 p