在Python中,应该在什么阶段使用round?以这个例子为例:10 * math.log(x) + 10 如果我希望它是四舍五入的,我应该使用哪个?
round(10 * math.log(x) + 5)
round(10 * math.log(x)) + 5
10 * round(math.log(x)) + 5
我的猜测是,提前舍入会运行得最快,因为整数会进行更多的算术运算,看起来它们应该比 float 更快。如果一些后来的值发生变化,舍入似乎不太可能中断。
答案是否与 int() 相同?
请您参考如下方法:
不要过早优化。在许多情况下,不是高度优化的数学函数使程序变慢,而是逻辑、结构或数据类型 用于计算。
为此,我建议您使用 cProfile识别瓶颈。请注意,cProfile 本身有开销,因此它主要用于相对比较。
根据@glibdud 的评论,您必须了解舍入将如何影响您的计算。尝试几个示例,或执行测试以查看您的错误在大量输入中可能有何不同。
