현지의 언어 = 음.언어.get Content Language(get Content Language)() 현지의 수학 = 요구하다('모듈:수학') 현지의 정렬 키 = 요구하다('모듈:정렬키') -- 상수 현지의 인피 = math.matrix 현지의 하지 않다 = -math.matrix 현지의 마이너스 = '−' -- Unicode U+2212 - SIGN (UTF-8: e2 88 92) -------------------------------------------------------------------------------- -- NTS 클래스 -------------------------------------------------------------------------------- 현지의 NTS = {} NTS.__인덱스 = NTS NTS.포맷 = { 아니요. = 진실의, 네. = 진실의, } 기능. NTS.신규(args) 현지의 자신 = 설정 가능한({}, NTS) 자신:해석 번호(args[1]) -- 형식 문자열을 설정합니다. 자신.포맷 = args.포맷 또는 '네' 한다면 것은 아니다. NTS.포맷[자신.포맷] 그리고나서 에러(string.format( "%s'는 올바른 형식이 아닙니다.", 스트링(자신.포맷) ), 0) 끝. -- 번호 표시 버전 앞에 텍스트를 표시합니다. -- {{prefix 123456789.00123=약. }} → 약 123,456,789.00123 자신.접두사 = args.접두사 또는 '' -- 디버깅 정보 자신.디버깅 = args.디버깅 또는 '아니요' 자신.조용히해. = args.조용히해. 또는 '아니요' 돌아가다 자신 끝. -- 입력된 번호를 해석합니다. 기능. NTS:해석 번호(s) --소독 처리하다 s = s 또는 ''; s = string.gsub(s,'"','-') s = string.gsub(s, 마이너스, '-') 자신.Raw Number String(로우 넘버 스트링) = s --분수. 어느 순간엔가 완전히 부서졌다. 자신.isFraction(분열) = (string.find(s, '/') ~= 제로) 한다면 자신.isFraction(분열) 그리고나서 에러(string.format( "Fractions는 지원되지 않습니다., 스트링(s) ), 0) 끝. -- 포맷 검출 자신.is Scientific Notation(IS Scientific Notation) = (string.find(s, 'e') ~= 제로) -- 언어 옵션에 의한 해석 자신.번호 = 언어:parse Formatted Number(파스 포맷 번호)(s) -- 폴백을 사용한 해석 한다면 것은 아니다. 자신.번호 그리고나서 자신.번호 = 톤수(s) 끝. -- 빈 문자열을 값으로 사용할 수 있습니다. 한다면 것은 아니다. 자신.번호 그리고나서 -- error(문자열).포맷() -- "%s는 유효한 숫자가 아닙니다", -- 토스트링 -- ), 0) 자신.번호 = 하지 않다 끝. 한다면 자신.번호 < > 0 그리고나서 자신.서명하다 = 마이너스 또 다른 자신.서명하다 = '' 끝. 자신.abs 번호 = math.abs(자신.번호) 한다면 자신.abs 번호 ~= 인피 그리고나서 자신.규모 = math.floor(수학.로그 10(자신.abs 번호)) 자신.의미심장 = 자신.번호 / 10^자신.규모 자신.정확 = 수학._개요(자신.Raw Number String(로우 넘버 스트링)) 자신.정수 = math.floor(자신.abs 번호) 자신.프랙셔널 = math.abs(자신.번호 - 자신.정수) 끝. 끝. 기능. NTS:make 디스플레이() 현지의 리트 ={} 한다면 자신.조용히해. == '네' 그리고나서 돌아가다 '' 끝. 리트[#리트 + 1] = 자신.접두사 현지의 sciNotation(sciNotation) = string.find(스트링(자신.번호),'e') 한다면 자신.abs 번호 == 인피 또는 NaN(자신.번호) 또는 자신.규모 ==제로 또는 math.abs(자신.규모) == 인피 그리고나서 리트[#리트 + 1] = string.gsub(자신.Raw Number String(로우 넘버 스트링), '-', 마이너스) 그렇지 않으면 sciNotation(sciNotation) ~= 제로 또는 math.abs(자신.규모) >= 9 그리고나서 리트[#리트 + 1] = 자신.서명하다 한다면 자신.포맷 == '네' 그리고나서 리트[#리트 + 1] = 언어:format Num(math.abs(자신.번호 * 10^-자신.규모)) 또 다른 리트[#리트 + 1] = math.abs(자신.번호 * 10^-자신.규모) 끝. 리트[#리트 + 1] = '<span style="display-left:0.2em">×<span style="display-left:0.1em">10</span><s style="display:none">^/s><sup>' 한다면 자신.규모< >0 그리고나서 리트[#리트 + 1] = 마이너스 .. (-자신.규모) 또 다른 리트[#리트 + 1] = 자신.규모 끝. 리트[#리트 + 1] = '/sup>' 또 다른 리트[#리트 + 1] = 자신.서명하다 한다면 자신.포맷 == '네' 그리고나서 리트[#리트 + 1] = 수학._param_format(_paramet_format)(자신.abs 번호, 자신.정확) 또 다른 현지의 new Precision = 수학._개요(자신.abs 번호) 리트[#리트 + 1] = 스트링(자신.abs 번호) 한다면 new Precision < > 자신.정확 그리고나서 한다면 자신.정수 == 자신.abs 번호 그리고나서 리트[#리트 + 1] = '.' 끝. 리트[#리트 + 1] = string.rep('0', math.min(12, 자신.정확 - new Precision) ) 끝. 끝. 끝. 돌아가다 table.concat(리트) 끝. 기능. NTS:make Sort 키() 돌아가다 정렬 키._sortKeyForNumber(자신.번호) .. '♠' 끝. 기능. if NaNThen(n,p) 한다면 NaN(n) 그리고나서 돌아가다 p 끝. 돌아가다 n 끝. 기능. NaN(n) 돌아가다 n ~= n 끝. 기능. NTS:renderTracking 카테고리() 한다면 자신.hasDepreced 파라미터 그리고나서 돌아가다 '[카테고리:사용되지 않는 파라미터가 있는 NTS 템플릿]]' 또 다른 돌아가다 '' 끝. 끝. 기능. NTS:__tostring() 현지의 뿌리 = 음.html.만들다() 현지의 기간 = 뿌리:태그('스판') :특성('data-param-value', 자신:make Sort 키()) 한다면 자신.디버깅 == '네' 그리고나서 기간:태그('스판') :css('경계', '1px 솔리드') :위키텍스트(자신:make Sort 키()) 그렇지 않으면 자신.조용히해. ~= '아니요' 그리고나서 기간:css('디스플레이', '없음') 끝. -- 디스플레이 한다면 자신.조용히해. == '아니요' 그리고나서 기간:위키텍스트(자신:make 디스플레이()) 끝. -- 카테고리 추적 뿌리:위키텍스트(자신:renderTracking 카테고리()) 돌아가다 스트링(뿌리) 끝. -------------------------------------------------------------------------------- -- 내보내기 -------------------------------------------------------------------------------- 현지의 p = {} 기능. p._export Classes() 돌아가다 { NTS = NTS } 끝. 기능. p.메인(args) 현지의 성공., 리트 = pcall(기능. () 현지의 동작하지 않다 = NTS.신규(args) 돌아가다 스트링(동작하지 않다) 끝.) 한다면 성공. 그리고나서 돌아가다 리트 또 다른 리트 = string.format( '<strong class="error">[템플릿 오류:Nts]), %s </strong>, 리트 ) 한다면 음.직함.get Current Title(전류 제목)().네임스페이스 == 0 그리고나서 -- 메인 네임스페이스에서만 분류합니다. 리트 = 리트 .. '[카테고리:오류가 있는 NTS 템플릿]' 끝. 돌아가다 리트 끝. 끝. 기능. p.주된(틀) 현지의 args = 요구하다('모듈:인수').취득하다(틀, { 포장지 = { '템플릿:번호표 정렬' }, }) 돌아가다 p.메인(args) 끝. 돌아가다 p