float보다 정밀도가 더 높은 데이터 유형이 있습니까?
답변:
성능 문제에 시달리면 GMPY를 살펴보십시오.
float
-s가 있습니다 이중 정밀도"
Python의 내장 float
유형은 배정 밀도 ( double
CPython 의 C , double
Jython 의 Java )를 가지고 있습니다. 더 정밀도를 필요하면 얻을 NumPy와를 하고를 사용합니다 numpy.float128
.
numpy.float128
64 비트 시스템에서 64 비트 정밀도를 갖는 경우가 많습니다. numpy.float128(1) + numpy.float128(2**-64) - numpy.float128(1)
를 반환합니다 0.0
. stackoverflow.com/a/29821557/420755
Decimal
고정 된 (그러나 구성 가능한) 정밀도를 가진 대략적인 숫자로 작업하려는 경우 사용하십시오 . Fraction
정확한 비율로 작업하고 무제한 스토리지 요구 사항을 감당할 준비가되어있을 때 사용 합니다.
여기 내 해결책이 있습니다. 먼저 random.uniform으로 난수를 만들고 배정 밀도로 문자열로 포맷 한 다음 다시 float로 변환합니다. '.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)
numpy.floor(100*a)/100
로 숫자 a
를 자르 려면 을 사용해야 합니다.