Найти - Пользователи
Полная версия: генерация чисел типа double с 10 знаками после запятой
Начало » Python для новичков » генерация чисел типа double с 10 знаками после запятой
1 2 3
esal
Привет Всем!
Тут у меня имеется вопрос по поводу чисел с плавающей точкой. Ссори за тупость, но мне надо сгенерировать числа именно с 10 знаками после запятой.(random.random() не подходит ). Подскажите, плиз, как можно добиться данного результата?
pill
>>> a = random.random ()
>>> print a
0.85769986594
>>> b = round (a,10)
>>> print b
0.8576998659
Не подойдет?

Хотя по факту:
>>> a
0.85769986593986813
>>> b
0.85769986590000002
Получить четко округленные числа наверное не получиться, насколько я помню, такова особенность реализации Питона.
Хотя могу ошибаться.
esal
ок) а если мне надо таких чисел сделать 1 млрд и записать в текстовый файл?
Как мне это сделать?
tmt
esal
ок) а если мне надо таких чисел сделать 1 млрд и записать в текстовый файл?
Как мне это сделать?
Нескромный вопрос. А что вы собираетесь делать с текстовым файлом размером больше 10 Гигабайт? Для чего все это?
pill
Ну судя по всему для этого:

А как записать, как-то так:
    file = open ('test','w')

for x in xrange (1000000000):
file.write (str (round(random.random (),10)))
file.write ('\n')

file.close ()
И идти пить чай… Литра два.)
tmt
pill
Ну судя по всему для этого:
Да это я читал, интересует именно для какой задачи это нужно. =)
Просто не проще их тогда писать в нужном порядке, учитывая дисперсию.
Сортировка чисел такого формата и в таких порядках задача не из простых.
Конечно если время нужное для сортировки не ограничено, апаратных ресурсов хватает и операция разовая то тут как говориться вариантов тьма.
Хоть пузырьковой сортировкой, шучу конешно… =)

Думаю вам стоит присмотреться к “Сортировке слиянием”
esal
tmt
с текстовым файлом размером больше 10 Гигабайт?
Как Вы так примерно посчитали ? )) И на сколько больше будет данный файл, если точнее подсчитать его размер?
sypper-pit
esal
более точное округление можно сделать через http://docs.python.org/library/decimal.html
Zubchick
11 байт в строке умножь на 10^9 и подели на 1024^3 получишь кол-во гигабайт
sypper-pit
Zubchick
+1

Думаю комп повиснет :) при
esal
а если мне надо таких чисел сделать 1 млрд и записать в текстовый файл?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB