蟒蛇烧瓶划分错误



我需要有关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"])

最新更新