如何在django模板中格式化浮点值?
我想在django模板中格式化浮点值,如下所示:如何在django模板中格式化浮点值?,django,django-templates,Django,Django Templates,我想在django模板中格式化浮点值,如下所示: 125000=>125k 125000000=>125M 我是否必须为此使用任何自定义模板标记,或者django已经有了一个 有什么想法吗?是内置模板标签和过滤器的列表,因此如果没有,您必须构建自己的模板标签和过滤器 您将在中找到与所需内容类似的内容,并以此为基础构建您自己的过滤器。您可以通过以下过滤器模板标记使用: @register.filter def format_number(num): num = int(num) m
125000
=>125k
125000000
=>125M
我是否必须为此使用任何自定义模板标记
,或者django已经有了一个
有什么想法吗?是内置模板标签和过滤器的列表,因此如果没有,您必须构建自己的模板标签和过滤器
您将在中找到与所需内容类似的内容,并以此为基础构建您自己的过滤器。您可以通过以下过滤器模板标记使用:
@register.filter
def format_number(num):
num = int(num)
magnitude = 0
while abs(num) >= 1000:
magnitude += 1
num /= 1000.0
return '%.2f%s' % (num, ['', 'K', 'M', 'G', 'T', 'P'][magnitude])
print(format_number(32413423)) # 32.41M
它将支持p
我使用以下链接创建了代码:
看看,可能不完全是您需要的,但这会让您了解如何编写自己的筛选器。复制粘贴他人代码/答案时,请阅读评论并告知他人潜在错误,或链接原始答案立即获取此错误
abs的错误操作数类型():“SafeText”
@NiladryKar我想您可能是在以字符串形式传递参数。您可以在函数中将其转换为int以工作。e、 g:num=int(num)//将此行添加到格式\u编号定义后的第一行function@NiladryKar我已经在我的帖子中添加了这一行,实际上我正试图为浮点值做这件事……上面的解决方案是针对int
value。它使用float(num)