1

プレーヤーで再生されている曲の割合を計算する必要があります

たとえば、次の場合:

    CurrentTime = 11 (Int)
    TotalTime = 222 (Int)

プレイされたパーセンテージが必要で、次のようにしてこれを行います

    PlayedBufferPercent = (CurrentTime*100)/TotalTime

-> 手動計算の結果は 4.95495495495 で、これは予想どおりです。これを 5 つの 10 進値 = 4.95496 に丸めたいと思います。Python を使用して以下を試しましたが、適切な出力が得られませんでした。

    PlayedBufferPercent = float((CurrentTime*100)/TotalTime)
    PlayedBufferPercent1 = ("{0:.5f}" .format(PlayedBufferPercent))

結果 = 4.00000 ですが、4.95496 が必要です。助けてください

4

2 に答える 2

3

整数演算を使用して算術を実行しています。この式:

(CurrentTime*100)/TotalTime

オペランドはすべて整数であるため、整数演算を使用して評価されます。したがって、次のように評価され4、次に float に変換すると

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

に変換するだけ4です4.0

浮動小数点演算を使用して算術を実行する必要があります。オペランドの少なくとも 1 つを float にすることで、これを強制できます。例えば:

PlayedBufferPercent = (CurrentTime*100.0)/TotalTime

CurrentTimeまたは、フロートを作成してフロートにすることもできますTotalTime

最後に、あなたは4.95496気にするつもりはありません。むしろ、どちら4.95495が正しいかが答えです。

于 2013-05-22T11:57:20.737 に答える
0

変数はまだ int のようです。PlayedBufferPercentこれは、2 つの int の除算の結果であることを考えると予想されます。

PlayedBufferPercent = (CurrentTime*100)/TotalTime
4

キャストを float に追加しても、手遅れであり、すでに精度が失われています。

これを修正する最も簡単な方法は、CurrentTimeandを明示的または暗黙TotalTime的に floatにすることです( と同じ)float(TotalTime)TotalTime = 11.0CurrentTime

于 2013-05-22T11:57:54.760 に答える