网站的建设意义,网站设计制作培训,制作logo免费,问答类咨询网站的建设概述
在编写myList类的时候#xff0c;涉及了格式化显示有序列表的序号问题#xff0c;于是编写出了一套新的函数库myNum#xff0c;用于方便的处理整数或浮点数格式化。
初期只加入了几个简单函数#xff0c;后续会加入十、十六、二进制转化以及科学计数法等内容。…概述
在编写myList类的时候涉及了格式化显示有序列表的序号问题于是编写出了一套新的函数库myNum用于方便的处理整数或浮点数格式化。
初期只加入了几个简单函数后续会加入十、十六、二进制转化以及科学计数法等内容。本文会及时更新代码和使用案例
代码
#
# 名称myNum
# 类型静态函数库
# 简介提供数字相关的处理函数
# 作者巽星石
# Godot版本v4.2.2.stable.official [15073afe3]
# 创建时间2024年4月27日12:16:57
# 最后修改时间2024年4月27日13:17:00
#
class_name myNum# 获取数字的位数
# 返回整数或浮点数的位数不包含小数点
static func get_length(num) - int:if num is int:return str(num).length()elif num is float:return str(num).length() - 1else:return -1# 判断类型
# 判断数字是否是整数
static func is_int(num) - bool:return num is int# 判断数字是否是浮点数
static func is_float(num) - bool:return num is float# 获取浮点数的整数或小数部分
# 获取浮点数的整数部分
static func get_float_int(num:float) - int:return int(str(num).split(.)[0])# 获取浮点数的小数部分
static func get_float_point_num(num:float) - float:return float(0. str(num).split(.)[1])# 格式化显示
# 格式化显示
static func format(num,format:String) - String:if num is int: # 整数前面补0var fm % 0%dd % format.length()return fm % numelif num is float:# 获取整数和小数部分var int_num # 整数部分var point_num # 小数部分if format.find(.) -1: # 没有小数点int_num str(num).split(.)[0]point_num var fm1 % 0%dd % format.split(.)[0].length()return fm1 % int(int_num) # 返回格式化的整数部分elif format.find(.) 0: # 没有设定整数格式int_num str(num).split(.)[0]point_num str(num).split(.)[1]var fm2 % 0-%dd % [format.length()-1]return %s.%s % [int_num,fm2 % int(point_num)] else:int_num str(num).split(.)[0]point_num str(num).split(.)[1]var fm1 % 0%dd % format.split(.)[0].length()var fm2 % 0-%dd % format.split(.)[1].length()# 格式化整数和小数部分int_num fm1 % int(int_num)point_num fm2 % int(point_num)# 返回完整字符串return %s.%s % [int_num,point_num] else:return 获取数字的位数
print(myNum.get_length(12)) # 2
print(myNum.get_length(12.35)) # 4
print(myNum.get_length(0.35)) # 3判断一个数是否是整数或浮点数
print(myNum.is_float(123)) # false
print(myNum.is_float(123.25)) # true获取浮点数的整数和小数部分
print(myNum.get_float_int(123.25)) # 123
print(myNum.get_float_point_num(123.25)) # 0.25数字格式化
print(myNum.format(123.25,0000.0000)) # 0123.2500
print(myNum.format(123.25,0000)) # 0123
print(myNum.format(123.25,.0000)) # 123.2500
print(myNum.format(123,0000)) # 0123
print(myNum.format(123,.0000)) # 00123 .被当做一个有效位数