Почему существует разная точность при использовании Random.random() в Python 2.6 и Python 2.7
пример:
import random
import sys
rng = random.Random(0)
print sys.version
for i in range(10):
print repr(rng.random())
2.6.6 (r266:84297, 24 августа 2010, 18:46:32) [MSC v.1500 32 бит (Intel)]
0,84442185152504812
0,75795440294030247
0,4205715808308452.7.5 (по умолчанию, 15 мая 2013 г., 22:43:36) [MSC v.1500 32 бит (Intel)]
0,8444218515250481
0,7579544029403025
0,420571580830845
Почему разная точность? Возможно, это связано с этими изменениями: http://docs.python.org/2/tutorial/floatingpoint.html#representation-error
В версиях до Python 2.7 и Python 3.1 Python округлял это значение до 17 значащих цифр, что давало «0,100000000000000001». В текущих версиях Python отображает значение, основанное на самой короткой десятичной дроби, которая правильно округляется до истинного двоичного значения, в результате чего получается просто «0,1».