如何屏蔽我的浮点数,最好不使用正则表达式?
How can I mask my float number, preferably without using regex?
如何使用掩码将浮点数格式化为字符串?
(我不精通正则表达式,但如果有人知道单行解决方案,为什么不呢?)
这是我的问题:
我有一个像“6.88”这样的浮点数,我需要使用以下掩码“00000000000.00”对其进行格式化
6.88 = "00000000006.88"
14.3 = "00000000014.30"
00.0 = "00000000000.00"
我已经阅读了以下内容post,但我无法理解:
Format number number with specific mask regex python
我的数据示例:
6.88 => 00000000006.88
56.62 => 00000000056.62
9.58 => 00000000009.58
24.75 => 00000000024.75
14.30 => 00000000014.30
我的解决方案效率不高也不快:
- 从 float 转换为 str
- 使用分隔符“.”拆分我的字符串
- 计算“.”前后的字符数
- 使用这些参数的长度使我的拆分[0]和拆分[1]适应掩码
- 完成
有更简单的方法吗?
你会使用 string formatting:
In [21]: '{:014.2f}'.format(6.88)
Out[21]: '00000000006.88'
In [22]: '{:014.2f}'.format(14.30)
Out[22]: '00000000014.30'
In [23]: '{:014.2f}'.format(0)
Out[23]: '00000000000.00'
根据6.1.3.1. Format Specification Mini-Language,
0
为填充符
.2
将精度设置为 2
14是结果字符串的宽度
另一个基于字符串格式的例子(不太好或容易出错):
def format_float(string_format, number):
_int, _frac = string_format.split(".")
real_format = "%%%s%d.%df" % ("0", len(_int) + len(_frac) + 1, len(_frac))
return real_format % number
print format_float("00000.000", 1.2)
会产生:00001.200
如何使用掩码将浮点数格式化为字符串?
(我不精通正则表达式,但如果有人知道单行解决方案,为什么不呢?)
这是我的问题:
我有一个像“6.88”这样的浮点数,我需要使用以下掩码“00000000000.00”对其进行格式化
6.88 = "00000000006.88"
14.3 = "00000000014.30"
00.0 = "00000000000.00"
我已经阅读了以下内容post,但我无法理解:
Format number number with specific mask regex python
我的数据示例:
6.88 => 00000000006.88
56.62 => 00000000056.62
9.58 => 00000000009.58
24.75 => 00000000024.75
14.30 => 00000000014.30
我的解决方案效率不高也不快:
- 从 float 转换为 str
- 使用分隔符“.”拆分我的字符串
- 计算“.”前后的字符数
- 使用这些参数的长度使我的拆分[0]和拆分[1]适应掩码
- 完成
有更简单的方法吗?
你会使用 string formatting:
In [21]: '{:014.2f}'.format(6.88)
Out[21]: '00000000006.88'
In [22]: '{:014.2f}'.format(14.30)
Out[22]: '00000000014.30'
In [23]: '{:014.2f}'.format(0)
Out[23]: '00000000000.00'
根据6.1.3.1. Format Specification Mini-Language,
0
为填充符.2
将精度设置为 214是结果字符串的宽度
另一个基于字符串格式的例子(不太好或容易出错):
def format_float(string_format, number):
_int, _frac = string_format.split(".")
real_format = "%%%s%d.%df" % ("0", len(_int) + len(_frac) + 1, len(_frac))
return real_format % number
print format_float("00000.000", 1.2)
会产生:00001.200