Floatよりも精度の高いデータ型はありますか?
Pythonの組み込みfloat
型には倍精度があります(CPythonではC double
、JythonではJava double
です)。さらに精度が必要な場合は、 NumPy を取得し、そのnumpy.float128
を使用します。
10進数が必要な場合があります
>>> from decimal import Decimal
>>> Decimal(2.675)
Decimal('2.67499999999999982236431605997495353221893310546875')
これが私の解決策です。最初にrandom.uniformを使用して乱数を作成し、倍精度で文字列にフォーマットしてから、浮動小数点数に変換し直します。 「.2f」を「.3f」などに変更することにより、精度を調整できます。
import random
from decimal import Decimal
GndSpeedHigh = float(format(Decimal(random.uniform(5, 25)), '.2f'))
GndSpeedLow = float(format(Decimal(random.uniform(2, GndSpeedHigh)), '.2f'))
GndSpeedMean = float(Decimal(format(GndSpeedHigh + GndSpeedLow) / 2, '.2f')))
print(GndSpeedMean)