如何对pyodbc查询得到的变量数值四舍五入保留两位小数
解决方案
你可以选择以下任意一种方法实现保留2位小数的需求,两种方案都可以保证自动四舍五入、整数位末尾自动补两位0:
方案1:在后端Views.py中处理(推荐,数据处理逻辑统一放在后端更易维护)
修改Views.py中查询结果的处理逻辑,取出查询返回的数值后先格式化再传递给模板:
creditTotal = ' Select SUM(Credit) FROM [Kyle].[dbo].[PostGL] WHERE Credit <> 0.0' cursor = cnxn.cursor(); cursor.execute(creditTotal); xCreditTotal = cursor.fetchone() # 新增以下代码格式化数值:使用字符串格式化保证固定显示两位小数,自动四舍五入 formatted_credit = "{:.2f}".format(xCreditTotal[0]) # 传递格式化后的数值到模板 return render(request , 'main/Kyletrb.html' , {"xAlls":xAll_l , 'xCreditTotal':[formatted_credit]})
对应的模板代码可以不用循环直接渲染,也可以保留原有循环逻辑。
方案2:在前端Django模板中使用过滤器处理(无需修改后端代码,修改成本更低)
直接修改Html.html中的模板代码,使用Django自带的floatformat过滤器实现保留两位小数:
{% for xCreditTotal in xCreditTotal %} <td><b>{{ xCreditTotal|floatformat:2 }}</b></td> {% endfor %}
floatformat:2会自动对数值做四舍五入处理,且不足两位小数时自动补0,完全符合你的输出要求。
内容的提问来源于stack exchange,提问作者KyleStranger
相关产品推荐
相关产品推荐

