Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 28, 2011 19:27:51

eiyawii
От:
Зарегистрирован: 2011-08-04
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Как подружить типы float и Decimal в python'e?

doza_and
может вам в рациональных числах считать?
да, попробовал, считает вроде как, но пока результат сложно оценить - надо еще от этих чисел логарифм взять, а аргумент типа Fraction не подходит для log10 из scipy - возбуждается ошибка. как быть?) Можно было бы в классе флоат прицепить с пару десятков разрядов после запятой :)



Офлайн

#2 Ноя. 28, 2011 19:52:12

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как подружить типы float и Decimal в python'e?

:) Я вам еще 2011-11-18 21:36:50 написал - изложите задачу и алгоритм иначе все это пустая болтовня и трата времени. Во float ничего вы не прицепите - это машиннозависимое представление чисел 8 байт и баста.



Отредактировано (Ноя. 28, 2011 20:00:37)

Офлайн

#3 Ноя. 28, 2011 20:21:09

eiyawii
От:
Зарегистрирован: 2011-08-04
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Как подружить типы float и Decimal в python'e?

c=[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,]
'''
for i in range(0,len(c)):
c[i]=d.Fraction(c[i])
'''
for i in range(0,len(c)):
c[i]=dec(c[i])

print c
x=arange(0,2*pi,0.001)
f=0
q=0
while q<=len(c)-1:
f+=c[q]*(cos(x*q)-1j*sin(x*q))
q+=1

plt.plot(20*log10(abs(f)))
plt.show()
Вот конкретный пример: задаю какой-то список. потом элементы списка преобразую в тип Fraction - тогда возникает ошибка при вычислении логарифма, если преобразую в Decimal, то ошибка возникает при умножении на j*sinX. пробовал сначала оставить в фракшн, а после вычисления f перевести в децимал, но преобразование возбуждает исключение.



Офлайн

#4 Ноя. 30, 2011 13:06:00

eiyawii
От:
Зарегистрирован: 2011-08-04
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Как подружить типы float и Decimal в python'e?

ап



Офлайн

#5 Ноя. 30, 2011 14:52:09

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Как подружить типы float и Decimal в python'e?

doza_and
Я про сверхдлинные массивы писал см второй абзац топикстартера
Если говорить про range, то в 3м питоне - это генератор, и проблемы с памятью не встает. Если говорить именно про длинные (сверхдлинные) линейные массивы, то, к сожалению, в 64-х битном режиме в винде, по крайней мере, их размер ограничен так же, как и в 32-х битной, - четырмя гигабайтами.



Офлайн

#6 Ноя. 30, 2011 20:44:09

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как подружить типы float и Decimal в python'e?

Isem
ограничен так же, как и в 32-х битной, - четырмя гигабайтами
спасибо, Это странно, я учту.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version