当前位置: 首页 > 面试题库 >

将分数转换为浮点数?

唐昊焜
2023-03-14
问题内容

有点像这个问题,但是相反。

给定类似11/2或的字符串,1 2/3将其转换为浮点数的最佳方法是什么?我正在考虑根据情况使用正则表达式,但是也许有人知道更好的方法或预先存在的解决方案。我希望可以使用eval,但是我认为第3种情况可以避免这种情况。


问题答案:

我稍微调整了詹姆斯的回答。

def convert_to_float(frac_str):
    try:
        return float(frac_str)
    except ValueError:
        num, denom = frac_str.split('/')
        try:
            leading, num = num.split(' ')
            whole = float(leading)
        except ValueError:
            whole = 0
        frac = float(num) / float(denom)
        return whole - frac if whole < 0 else whole + frac


print convert_to_float('3') # 3.0
print convert_to_float('3/2') # 1.5
print convert_to_float('1 1/2') # 1.5
print convert_to_float('-1 1/2') # -1.5

http://ideone.com/ItifKv



 类似资料:
  • 问题内容: 我有一个必须解析的二进制文件,并且正在使用Python。有没有办法占用4个字节并将其转换为单个精度浮点数? 问题答案:

  • 问题内容: 正如标题所说。我不认为有可能这样做,但如果可以告诉我。 这是我正在编写的bukkit(minecraft服务器)插件所必需的。我要执行一个命令:tnt [power]。电源是我想转换为浮点数的返回字符串。 谢谢 问题答案: 用于进行转换。 和之间的区别只是回报。如果需要(对象),请使用前者;如果要数字,请使用后者。

  • 我有一个csv文件包含一些浮点数据。代码很简单 然后我将其转换为float32以节省内存使用。 值刚刚更改!我如何保持数据不变? (我也尝试了,但是print仍然得到相同的输出)

  • 问题内容: 首先,我尝试了这篇文章(以及其他内容):Python中的货币格式。它对我的变量没有影响。我最好的猜测是,因为我使用的是Python 3,而那是Python 2的代码。(除非我忽略了某些东西,因为我是Python的新手)。 我想将浮点数(例如1234.5)转换为字符串,例如“ $ 1,234.50”。 我将如何去做呢? 以防万一,这是我的已编译但不影响我的变量的代码: 同样不成功: 问题

  • 问题内容: http://golang.org/pkg/strconv/ http://play.golang.org/p/4VNRgW8WoB 如何将浮点数转换为字符串格式?这是google游乐场,但未获得预期的输出。(2e + 07)我想得到“ 21312421.213123” 请帮助我从浮点数中获取字符串。谢谢 问题答案: 试试这个 如果只想获得尽可能高的位数精度,则特殊精度-1使用所需的最

  • 这就是我所拥有的。