Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 9, 2010 12:58:04

S1asH
От:
Зарегистрирован: 2010-02-11
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

ограничение float

народ помогите есть какой нибудь другой тип данных с большей точностью (нужно чтоб минимум после запятой было 15 знаков), а то у флоат ограничение всего 10 знаков после запятой. Нужно для научных вычислений.



Офлайн

#2 Окт. 9, 2010 13:04:22

asv13
От:
Зарегистрирован: 2007-01-22
Сообщения: 130
Репутация: +  0  -
Профиль   Отправить e-mail  

ограничение float

http://calcrpnpy.sourceforge.net/clnumManual.html
http://code.google.com/p/gmpy/
decimal

(а вообще кажется тема обсуждалась уже)



Офлайн

#3 Окт. 9, 2010 23:05:39

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

ограничение float

А откуда у float такое ограничение?



Офлайн

#4 Окт. 10, 2010 00:50:58

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

ограничение float

53 бита мантиссы - что то около 15 десятичных разрядов. Почти 16 - но все равно не слишком много :)
Если нужно строгие 15 знаков после запятой плюс еще сколько-то там перед ней, float оказывается чуть-чуть узковат.



Отредактировано (Окт. 10, 2010 02:30:14)

Офлайн

#5 Окт. 10, 2010 15:30:47

S1asH
От:
Зарегистрирован: 2010-02-11
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

ограничение float

в numpy есть такой тип как flout64 позволяет использовать до 13 знаков после запятой. у меня проблема такова что есть файл(текстовик) со значениями типа -0.123456789012345 вот их мене надо из этих значений составить массив.



Офлайн

#6 Окт. 10, 2010 16:38:48

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

ограничение float

Может вобще не стоит float использовать? Можно попробовать использовать 2 целых числа - одно для целой части и второе для дробной.



Офлайн

#7 Окт. 10, 2010 18:11:25

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

ограничение float

или просто целое число, первые 15 знаков считать как до запятой.

Офлайн

#8 Окт. 10, 2010 18:33:13

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

ограничение float

o7412369815963
или просто целое число, первые 15 знаков считать как до запятой.
В какой системе счисления знаки считать будете? В двоичной одно получается, в шестнадцатеричной немного другое.
А десятичная вообще не очень удобно переводится



Офлайн

#9 Окт. 10, 2010 18:47:38

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

ограничение float

S1asH
в numpy есть такой тип как flout64 позволяет использовать до 13 знаков после запятой. у меня проблема такова что есть файл(текстовик) со значениями типа -0.123456789012345 вот их мене надо из этих значений составить массив.
numpy.float64, к вашему сведению, имеет ту же разрядность что и обычный float. И это - не 13 знаков, как я уже писал.
numpy.float128 изрядно шире.

Но дело не в этом. Не стесняйтесь, напишите что вы еще собираетесь делать с этими числами - помимо чтения из текстового файла.
Может быть складывать или даже делить?
15 знаков (десятичных, как я понимаю) откуда взялись? Чье это ограничение?
Таки сколько должно быть разрядов после запятой? А до нее? Ответ “как можно больше” некорректен - разрядная сетка не резиновая.
Что считаете - рубли или километры? float конструктивно не может точно записать некоторые дроби и совсем не подходит для финансов.
Экспонента используется или нет? Имеется в виду способ записи вроде 3.14e32.
Рядышком стоит вопрос округлений - когда их делать и как.

Это то, что пришло мне в голову в первую очередь. И в зависимости от ответов я бы выбирал тот или иной тип данных, а потом уже библиотеку под него.



Офлайн

#10 Окт. 10, 2010 19:20:01

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

ограничение float

Андрей Светлов
o7412369815963
или просто целое число, первые 15 знаков считать как до запятой.
В какой системе счисления знаки считать будете? В двоичной одно получается, в шестнадцатеричной немного другое.
А десятичная вообще не очень удобно переводится
в десятичной конечно же, для перевода достаточно разделить или умножить на 10^n. при этом математика не меняется.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version