Найти - Пользователи
Полная версия: как избавится от экспоненты в переменной Decimal
Начало » Python для новичков » как избавится от экспоненты в переменной Decimal
1 2
doza_and
@cckyi_boxxx
подумывал юзать numpy или pandas, у них свои типы и работают они точно
??? Насколько знаю у них double точно такой как и в питоне. Ну может формат принта другой.

@cckyi_boxxx
возможно под питон есть что-то позволяющее работать точно как numpy но не с массивами а с переменными (кроме Decimal)?

Это трудно понять. Скажем так, в питоне есть числа с которыми вычисления ведутся точно. Это целые числа. В sympy можете еще работать с рациональными дробями. Будет абсолютно точно. Еще неплохой результат получается если представлять числа цепными дробями. Результат будет вида 19/15 а не 1.26666666666666666666666666666666666666666666666666666666666666666666
6666666666666666666666666666666666666666666666666666666666666666666666
6666666666666666666666666666666666666666666666666666666666666666666666
6666666666666666666666666666666666666666666666666666666666666666666666
6666666666666666666666666666666666666666666666666666666666666666666666
6666666666666666666666666666666666666666666666666666666666666666666666
6666666666666666666666666666666666666666666666666666666666666666666666
66666666667.

Вот вы на этом конкретном примере покажите какого вы всеже результата хотите добиться своим форматированем?
@cckyi_boxxx
Ну с форматированием я разобрался, просто генерю строку если есть экспонента при помощи своей функции а если нет то штатным str, что до других либ тут уже вопрос больше относится к стабильности точных вычислений на десятичных дробях, ну и простоте работы разумеется, цепные это хорошо но тут я точно испытаю немало секаса для преобразования из десятичных и обратно.

что до numpy он юзает сишную либу для вычислений, и соответственно свои типы, вот они https://docs.scipy.org/doc/numpy-1.15.0/user/basics.types.html , но когда доходит до взаимодействия с python float переменными я не знаю как он себя ведет.
JOHN_16
@cckyi_boxxx
но когда доходит до взаимодействия с python float переменными я не знаю как он себя ведет.
А разве последний параграф в разделе Extended Precision не дает ответа на этот впорос?
doza_and
@cckyi_boxxx
уже вопрос больше относится к стабильности точных вычислений на десятичных дробях
Ну тут все просто.
1. И в базовом питоне и в numpy нет типа “десятичные дроби” (я такой тип вообще ни в одном языке не встречал).
2. Если вы имеете ввиду float, np.float то ни о каких точных вычислениях не может быть и речи. Это типы для приближенных вычислений которые всегда дают приближенный результат.
3. Компьютер не человек, все вычисления с любыми числами всегда стабильны (в том смысле что они дают абсолютно идентичные результаты при последовательных запусках программы).
FishHook
doza_and
я такой тип вообще ни в одном языке не встречал
Есть такой тип
Rodegast
> в базовом питоне и в numpy нет типа “десятичные дроби” (я такой тип вообще ни в одном языке не встречал).
>> Есть такой тип

Это тип не десятичной, а простой дроби. В Python-е он тоже есть, называется Fraction.
@cckyi_boxxx
Всем спасибо за ответы!

doza_and
И в базовом питоне и в numpy нет типа “десятичные дроби” (я такой тип вообще ни в одном языке не встречал).
сорян, неправильно выразился я говорил именно про float , и я понимаю что с этим типом точных вычислений не жди, но когда читал книгу “Python и анализ данных” автор Уэс Маккинни, точно помню что он описывал ситуацию при которой питоновский float при выдавал 0.1 + 0.2 = 0.3000000000000001 (точно не помню выражение но суть понятна, при этом numpy работал четко , говоря о точности я именно это имел ввиду.

JOHN_16, настолько глубоко я еще не изучал этот вопрос, но спасибо за ссыль, прочел, теперь есть представление что к чему.

Rodegast, очередной раз спасибо за подсказку, я не знал о существовании Fraction, выделю время и с удовольствием его поковыряю, если окажется что он лучше взаимодействует со стандартными типами python, и при этом точность вычислений достаточна то скорее всего заменю им Decimal.

И есть еще один интересный момент, в какой-то литературе читал что к из питонокода можно юзать фортран, сейчас вопрос даже не о том как это делать, с этим при необходимости разберусь сам, вопрос в том удобнее-ли и надежнее-ли он для точных вычислений чем то что есть под питон?
doza_and
@cckyi_boxxx
вопрос в том удобнее-ли и надежнее
Не удобнее и не надежнее. Фортран вообще отживший язык. Если нужна абсолютная точность то используйте системы кмпьютерной алгебры.
@cckyi_boxxx
doza_and, а не будет-ли наглостью попросить вас кинуться в меня литературой или кратким мануалом по по реализации “системы компьютерной алгебры” на python?
doza_and
https://www.sympy.org/ru/
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