我必须计算播放器中正在播放的歌曲的百分比
例如:
CurrentTime = 11 (Int)
TotalTime = 222 (Int)
我需要播放的百分比,我按照
执行此操作 PlayedBufferPercent = (CurrentTime*100)/TotalTime
- >手动计算结果为4.95495495495,这与预期一致。 现在我想把它舍入到5个十进制值= 4.95496,我使用python尝试了下面但没有得到正确的输出。
PlayedBufferPercent = float((CurrentTime*100)/TotalTime)
PlayedBufferPercent1 = ("{0:.5f}" .format(PlayedBufferPercent))
结果= 4.00000但我想要4.95496,请帮忙
答案 0 :(得分:3)
您正在使用整数运算执行算术运算。这个表达式:
(CurrentTime*100)/TotalTime
使用整数运算来计算,因为操作数都是整数。因此它评估为4
,然后当您使用
PlayedBufferPercent = float((CurrentTime*100)/TotalTime)
您只需将4
转换为4.0
。
您需要使用浮点运算执行算术运算。您可以通过使至少一个操作数为浮点数来强制执行此操作。例如:
PlayedBufferPercent = (CurrentTime*100.0)/TotalTime
或者,您可以将CurrentTime
和TotalTime
设为浮点数。
最后,你不会让4.95496
提醒你。而答案是4.95495
,这是正确的答案。
答案 1 :(得分:0)
看起来你的PlayedBufferPercent
变量仍然是一个int - 这是预期的,因为它是2个整数除法的结果。
PlayedBufferPercent = (CurrentTime*100)/TotalTime
4
即使你将演员表添加到浮动状态,也为时已晚,你已经失去了精确度。
解决此问题的最简单方法是将CurrentTime
和TotalTime
设置为明确float(TotalTime)
或隐含TotalTime = 11.0
(与CurrentTime
相同)