目的の値を取得するのに問題があります。
次の「abc」文字列は角度を表します。「結果」文字列は、探している値を表します。
a = '199.1224'
result = '199.122400000000000'
b = '199.0362'
result = '199.036200000000010'
c = '-199.9591'
result = '-199.959100000000010'
次のコードを使用します。
Decimal(float(a)).quantize(Decimal('.000000000000001'), rounding=ROUND_HALF_UP)
results in
a = 199.122399999999999
b = 199.036200000000008
c = -199.959100000000007
私は数学の天才ではなく、Decimal モジュールで可能な限りのことを試しましたが、必要な結果を得るための正しい方法が見つからないようです。
私が使用するくだらない回避策として:
Decimal(float(a)).quantize(Decimal('.00000000000001'), rounding=ROUND_HALF_UP)
str(a)+'0'
したがって、10進数を1つ減らして量子化し、文字列に変換して(とにかくそれを行う必要があります)、ゼロを追加します。これにより、何千ものこれらの値で正しい望ましい結果が得られます。しかし、丸めてゼロで終わる正しい方法があるかどうかを知りたいです(これの英語の単語がわかりません)。