如何将字符串转换为int或优先于int浮动?

发布于 2021-01-29 18:33:07

当我想要这个时,我找不到其他答案,所以我想我会把自己的解决方案发布给其他任何人,如果做错了什么,也会得到纠正。

我必须做一个自动配置文件解析器,如果可能的话,我更喜欢将数字设置为int,如果不可以,则浮动。通常的try /
except转换本身并不起作用,因为任何float都将被强制转换为int。

为了澄清,就像有人问的那样,情况基本上是将数字转换为编写配置文件数据的人想要的数字。因此,任何带有小数的东西都可能是浮点数。另外,我认为由于浮点数的性质,对于某些运算符(例如==,<,>),float可能很危险,并且在必要时int会转换为float。因此,我希望数字尽可能地保持int值。没什么大不了的,只是对我自己的一种约定。

关注者
0
被浏览
178
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    def int_or_float(s):
        try:
            return int(s)
        except ValueError:
            return float(s)
    

    如果您想将某些内容"10.0000"转换为int,请尝试以下操作:

    def int_dammit_else_float(s):
        f = float(s)
        i = int(f)
        return i if i == f else f
    

    您想要输入什么结果"1e25"



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看