在Python中将表达式评估为浮点数

2 投票
3 回答
2129 浏览
提问于 2025-04-17 04:27

我想写一个函数,这个函数接收两个变量 a 和 b,然后返回 a 除以 b 的结果,结果是一个小数,不管 a 和 b 的类型是什么。目前我这样做:

def f(a, b):
    return float(a)/float(b)

有没有更好的方法来实现这个呢?

3 个回答

0

这要看情况。;)

最安全的方法就是使用你现在的做法,这样可以适用于所有可以转换为 float 的数字类型。比如在 Python 3 中,Fraction 这种数字类型,即使使用新的除法运算(这个新运算只影响 int 类型,其他类型有自己的 / 定义),它仍然会返回一个 Fraction。不过你的代码会正确地把 Fraction 转换成 float

1

你可以简单地把其中一个操作数强制转换成浮点数类型,比如:

def f(a, b):
    return (a*1.0)/b
10

假设你在用Python2,把这段代码放在文件的最上面:

from __future__ import division

这样一来,/这个符号每次都会返回一个小数。如果你想要以前那种行为,可以用//

如果你在用Python3,那这个/的行为就是默认的了。

撰写回答