我需要有关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')
在 Python 2 中,将一个 int 除以另一个 int 将执行整数除法。
要解决此问题,您可以将a
乘以 1.0
,将其转换为浮点数,然后再除以 b:
result = a*1.0/b
这应该为您提供预期的2.5
而不是2
。
在
源代码的开头添加此行。
from __future__ import division
根据您使用的 Python 版本,结果可能会有所不同。有关更多详细信息,请参阅此问题。但简而言之,看起来,为了让您看到浮点数结果,您需要先将数字转换为浮点数,如下所示
a = float(request.form["a"])
a = float(request.form["b"])