匿名
未登录
中文(中国大陆)
登录
「荏苒之境」
搜索
查看“︁模块:NumSysConvert”︁的源代码
来自「荏苒之境」
命名空间
模块
讨论
更多
更多
页面操作
阅读
查看源代码
历史
清除缓存
←
模块:NumSysConvert
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local num_sys_convert = {} local DIGIT_MAP = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" local function decimal_to_base(input_num, target_base, max_precision) if target_base < 2 or target_base > 36 then error("目标进制只支持2~36进制") elseif input_num == 0 then return "0" end max_precision = max_precision or 10 local is_negative = input_num < 0 input_num = math.abs(input_num) local integer_part = math.floor(input_num) local integer_result = "" local fractional_part = input_num - integer_part local fractional_result = "" if integer_part == 0 then integer_result = "0" else while integer_part > 0 do local remainder = integer_part % target_base integer_result = string.sub( DIGIT_MAP, remainder + 1, remainder + 1)..integer_result integer_part = math.floor(integer_part / target_base) end end if fractional_part > 0 then fractional_result = "." local precision_count = 0 while fractional_part > 0 and precision_count < max_precision do fractional_part = fractional_part * target_base local current_digit = math.floor(fractional_part) fractional_result = fractional_result ..string.sub(digit_map, current_digit + 1, current_digit + 1) fractional_part = fractional_part - current_digit precision_count = precision_count + 1 end end local final_result = integer_result..fractional_result if is_negative then final_result = "-"..final_result end return final_result end num_sys_convert.decimal_to_base = decimal_to_base num_sys_convert.show = function(frame) local num = tonumber(frame:preprocess(frame.args.num)) local base = tonumber(frame:preprocess(frame.args.base)) return decimal_to_base(num, base) end return num_sys_convert
该页面使用的模板:
模块:NumSysConvert/doc
(
查看源代码
)
返回
模块:NumSysConvert
。
导航
导航
首页
最近更改
随机页面
特殊页面
wiki工具
wiki工具
Cargo数据
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志