Python Flask division error
我需要关于python flask应用程序的帮助。我试图给用户一个他们指定的划分的结果,但它不起作用。例如,当用户提交"5"和"2"时,它返回"2"而不是"2.5"。我不知道为什么会这样。
以下是我的代码…有人知道为什么会这样吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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将执行整数除法。
为了解决这个问题,可以将
1 | result = a*1.0/b |
这应该给你预期的
在源代码的开头添加这一行。
1 | from __future__ import division |
根据所使用的Python版本,结果可能会有所不同。有关详细信息,请参阅此问题。但简而言之,为了让您看到一个浮点结果,您需要首先将数字转换为浮点,如下所示
1 2 | a = float(request.form["a"]) a = float(request.form["b"]) |