比较Python中的"相似"数字

1 python math rounding

为了同步我的iPod和我的本地音乐存储库,我使用其元数据为每个音轨创建了一个唯一键.该独特曲目由曲目的以下元数据字段组成:艺术家,专辑,曲目编号,持续时间.iPod以毫秒为单位保存曲目的持续时间,但我的本地存储库会在几秒钟内保存它.例如:iPod上的437590毫秒是我的本地存储库中的438秒.

当我将ipod的音轨持续时间除以1000时,我得到437.我尝试使用round(),但round (b.tracklen/1000)打印437.

如果没有匹配math.ceil(),我可以通过检查math.floor()iPod持续时间来解决这个问题,但这是一个糟糕的解决方案.

解决这个问题的最佳方法是什么?

Dog*_*ert 6

round当你除以1000而不是1000.0时,你的电话会给出错误的结果

>>> round(437590/1000.0)
438.0
Run Code Online (Sandbox Code Playgroud)

  • @Liron - 那是因为你的问题是除法运算符的语义.'round`看到的不是除法计算,只有结果,(对于整数除法)已被截断为437.将437舍入为最接近的整数,得到437. (5认同)