什么时候使用trunc()而不是int()将浮点数转换为整数更好?

2024-04-18 07:39:49 发布

您现在位置:Python中文网/ 问答频道 /正文

truncint函数为我尝试过的每个float类型输入返回相同的输出。在

它们的不同之处在于int也可用于将数字字符串转换为整数。在

所以我有一个双重的问题:

  1. 我想知道,除了字符串之外,trunc和{}是否有不同的输出?

  2. 如果不是,什么时候使用trunc将浮点数转换成整数更好?


Tags: 函数字符串类型数字整数floatint浮点数
1条回答
网友
1楼 · 发布于 2024-04-18 07:39:49

^{}^{}^{}和{a4}有某种相似的关系。int委托给类型的^{}方法,如果找不到__int__,则返回到^{}方法。math.trunc直接委托给类型的__trunc__方法,并且没有回退。与始终为object定义的^{}^{}不同,int和{}都可以提出现成的错误。

对于我所知道的所有内置类型,__int__和{}都是在适当的地方合理定义的。但是,您可以定义自己的一组测试类,以查看出现的错误:

class A:
    def __int__(self):
        return 1

class B:
    def __trunc__(self):
        return 1

class C(): pass

math.trunc(A())和{}都将提升{}。int(C())将引发{}。然而,int(A())int(B())和{}都会成功。

最后,决定使用哪种方法是一个内涵。trunc本质上是一个类似于floor的数学运算,而{}是一个通用的转换,在更多情况下会成功。

别忘了^{}^{}方法。

相关问题 更多 >