gpt4 book ai didi

python - int() 和 float() 的行为不一致

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:08 27 4
gpt4 key购买 nike

在Python中,当将字符串转换为 float 时,float()将整数或小数表示形式转换为数字:

float('3.5')给出3.5

float('3')给出3

float()还将整数转换为 float :

float(3)给出3.0

为什么int()如果它可以将 float 转换为整数,则不将字符串小数转换为整数?例如:

int(3.5)给出3 ,

但是int('3.5')提出 ValueError异常。

这使得人们可以使用类似 int(float('3.5')) 的东西当想要将字符串转换为整数而不知道该数字是否为小数时。

为什么 float() 之间存在这种差异和int()

最佳答案

我会说,为什么不呢?

这更像是一种转换预防措施。它会尽量谨慎和保守,因为转换可能会以意想不到的方式丢失数据精度。通过说 int(float("3.5")),您的意图是明确的。但是 int("3.5") ——您是否认为这不是一个整数并且您准备好放弃 0.5 的差异? float("3.5") 中不存在此类问题。

如果您希望 int("3.5") 返回整数而不引发错误,那么自然也需要 int("four") , int("3.5 # 忽略此注释"), int("XLII") 有效吗?那就太多了。

关于python - int() 和 float() 的行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55599535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com