【发布时间】:2019-06-21 00:55:47
【问题描述】:
当我尝试使用 int() 函数将浮点数转换为整数时,为什么会出错?
>>> int('99.99')
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
int('99.99')
ValueError: invalid literal for int() with base 10: '99.99'
我预计结果是 99
【问题讨论】:
-
您不是在转换浮点数,而是在转换字符串。
-
您没有将浮点数转换为整数;您正在尝试转换包含浮点文字的字符串。本着“显式优于隐式”的精神,
int不会尝试隐式地从字符串到浮点数到 int。如果您想这样做,请明确:int(float('99.99')). -
这应该可以得到你想要的 int(float('99.99'))
-
您正在从 string 转换为 int,它失败了,因为 python 不希望 int 中有一个点。试试
round(float('99.99))。也许看看Math.floor/ceil,这取决于你希望它如何对你的数字进行四舍五入。
标签: python