Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中设置从1000到1k的数字格式_Python_Django - Fatal编程技术网

Python 如何在django中设置从1000到1k的数字格式

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

我在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 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.是的,谢谢。你能帮我做这个吗@本,你能帮我吗