Python 如何在django中设置从1000到1k的数字格式
我在Django从事一个项目,我在项目中创建了一个模板_tags.py文件。如何设置1000到1k、2000到2k、1000000到1m等数字的格式。但是我的代码有一个问题,我得到的不是1000到1k,而是1000到1.0k。我的代码中缺少了什么Python 如何在django中设置从1000到1k的数字格式,python,django,Python,Django,我在Django从事一个项目,我在项目中创建了一个模板_tags.py文件。如何设置1000到1k、2000到2k、1000000到1m等数字的格式。但是我的代码有一个问题,我得到的不是1000到1k,而是1000到1.0k。我的代码中缺少了什么 from django import template register = template.Library() @register.filter def shrink_num(value): """ Shrinks numb
from django import template
register = template.Library()
@register.filter
def shrink_num(value):
"""
Shrinks number rounding
123456 > 123,5K
123579 > 123,6K
1234567 > 1,2M
"""
value = str(value)
if value.isdigit():
value_int = int(value)
if value_int > 1000000:
value = "%.1f%s" % (value_int/1000000.00, 'M')
else:
if value_int > 1000:
value = "%.1f%s" % (value_int/1000.0, 'k')
return value
您似乎正在使用1位小数设置格式。如果不需要小数或其后的数字,请将1更改为0。您还需要有
value\u int>=
否则1000000和1000将无法转换:
[...]
if value_int >= 1000000:
value = "%.0f%s" % (value_int/1000000.00, 'M')
else:
if value_int >= 1000:
value = "%.0f%s" % (value_int/1000.0, 'k')
您还可以在Django的官方文档中检查此模板过滤器。这个能满足你的需要,还有其他的东西这能回答你的问题吗@iklinac.是的,谢谢。你能帮我做这个吗@本,你能帮我吗