我的Python Flask应用程序需要帮助。我试图向用户提供他们指定的部门的结果,但它不起作用。当用户提交" 5"和" 2"例如,它返回" 2"而不是" 2.5"。我不知道为什么会这样做。
以下是我的代码......任何人都可以找出为什么会发生这种情况?
from flask import Flask, session, render_template, request
app = Flask(__name__)
app.secret_key = 'wlFw0WP7SrNmAMF1wJaUSjWMTYdTay8EDIA3FPQhbo9c7wQ9rIdQrzJRzcN1o3mp'
@app.route('/',methods=['GET','POST'])
def index():
[...]
if request.method == 'POST':
a = int(request.form['a'])
b = int(request.form['b'])
result = a/b
return render_template('index.html',session=session,result=result)
return render_template('index.html',session=session)
# Other routes omitted
if __name__ == '__main__':
app.run(host='0.0.0.0')
答案 0 :(得分:3)
在Python 2中,将int除以另一个int将执行整数除法。
要解决此问题,您可以将a
乘以1.0
,将其转换为浮点数,然后再除以b:
result = a*1.0/b
这应该为您提供预期的2.5
而不是2
。
答案 1 :(得分:0)
在源代码的开头添加此行。
from __future__ import division
答案 2 :(得分:-1)
根据您使用的Python版本,结果可能会有所不同。有关详细信息,请参阅this question。但简而言之,看起来,为了让您看到浮动结果,您需要首先将数字转换为浮点数,如下所示
a = float(request.form["a"])
a = float(request.form["b"])