Плавающие значения двойной точности в Python?
существуют ли типы данных с лучшей точностью, чем float?
5 ответов:
- В отличие от аппаратного двоичного с плавающей запятой, десятичный модуль имеет пользовательскую изменяемую точность (по умолчанию до 28 мест), которая может быть такой большой, как это необходимо для данной проблемы.
Если вы нажаты производительности issuses, посмотрите на GMPY
встроенную в Python
float
тип имеет двойную точность (это Cdouble
в CPython, Javadouble
в Jython). Если вам нужно больше точности, получить включает в себя и использовать егоnumpy.float128
.
может быть вам нужно десятичное
>>> from decimal import Decimal >>> Decimal(2.675) Decimal('2.67499999999999982236431605997495353221893310546875')
вот мое решение. Сначала я создаю случайные числа со случайными.униформа, отформатируйте их в строку с двойной точностью, а затем преобразуйте их обратно в float. Вы можете настроить точность путем изменения '.2f 'to'.3Ф и так далее..
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)