2015-12-15 3 views
6

У меня есть большое десятичное число, такое как квадратный корень из 2, и я хочу просмотреть первые 100 десятичных цифр. Однако поплавок не поддерживает эту возможность: 1.4142135623730951454746218587388284504413604736328125000000000000000000000000000000000000000000000000100-значный с плавающей запятой python

Каков наилучший способ для этого? Я не хочу ничего импортировать, желательно

+4

Я боюсь, что вы собираетесь импортировать 'десятичных .Decimal'. – roippi

+0

Взгляните на этот сайт: http://floating-point-gui.de/ – SethMMorton

+0

Модуль mpmath также будет работать для этого, http://mpmath.org/ –

ответ

6

Если ваше требование о точности составляет 100 десятичных цифр, я думаю, вы должны использовать decimal.Decimal.

float в Python не предназначен для такого точного расчета.

Использование decimal.Decimal почти так же просто, как float, вы можете сделать +, -, *, / и некоторые другие часто используемые расчеты непосредственно между любым decimal.Decimal без какого-либо рассмотрения.

Также decimal.Decimal поддерживает Наладку точности непосредственно вы хотите:

>>> from decimal import getcontext, Decimal 
>>> getcontext().prec = 6 
>>> Decimal(1)/Decimal(7) 
Decimal('0.142857') 
>>> getcontext().prec = 28 
>>> Decimal(1)/Decimal(7) 
Decimal('0.1428571428571428571428571429') 

Вы можете найти более подробную информацию в этом Python2 API или Python3 API

+0

Вы должны проходить строки –

+0

@ IgnacioVazquez-Abrams: Нет, это действительно плавающая точка, так как [docs] (https://docs.python.org/2/library/decimal.html) говорят: «Десятичный модуль обеспечивает поддержку десятичной арифметики с плавающей запятой». –

+0

Может ли это делать квадратные корни? – plugwash

Смежные вопросы