将结果整数转换为具有五位小数的浮点数并进行数学运算

2024-10-03 13:17:03 发布

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

我得计算一下播放器播放歌曲的百分比

例如:

    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,请帮忙


Tags: 方法gtformat手动float播放器int百分比
2条回答

看起来您的PlayedBufferPercent变量仍然是一个int-这是预期的,因为它是2个int的除法结果。你知道吗

PlayedBufferPercent = (CurrentTime*100)/TotalTime
4

即使你把演员加入浮动,也太晚了,你已经失去了精准度。你知道吗

解决这个问题的最简单方法是通过显式地float(TotalTime)或隐式地TotalTime = 11.0(与CurrentTime相同)将CurrentTimeTotalTime设为浮点数

您正在使用整数运算执行算术。此表达式:

(CurrentTime*100)/TotalTime

使用整数算术计算,因为操作数都是整数。所以它的计算结果是4,然后当你用

PlayedBufferPercent = float((CurrentTime*100)/TotalTime)

只需将4转换为4.0。你知道吗

您需要使用浮点运算来执行算术。您可以通过使至少一个操作数为浮点数来强制执行该操作。例如:

PlayedBufferPercent = (CurrentTime*100.0)/TotalTime

或者,您可以将CurrentTimeTotalTime设为浮点数。你知道吗

最后,你不会得到4.95496的提醒。相反,答案是4.95495,这是正确的答案。你知道吗

相关问题 更多 >