2013-07-04 2 views
-4

데이터 목록을 분석 중입니다. 데이터는 값의 목록이며 소수점이 많은 매우 큰 값입니다. 예를 들어 :어떻게 파이썬에서 큰 소수점을 처리 할 수 ​​있습니까?

-3.21446735874, 48.4505248207, 0. 
-3.21476825075, 48.4504325609, 0. 

나는 각각의 수와 크기의 정밀도를 감소 파이썬없이 계산에이 번호를 사용 할 수 있어야합니다 (float(x)int(x) 분명히 작동하지 않습니다!). decimal 모듈을 사용해 보았지만, 작동하지 않는 가져 오기 등으로 인해 더 이상 사용할 수 없습니다. 플랫폼 독립적 인 솔루션을 선호 할 것입니다 (기본 파이썬 모듈 만 사용하십시오!).

+6

"10 진수 모듈을 사용해 보았지만, 작동하지 않는 가져 오기 또는 다른 것으로 인해 더 이상 사용할 수 없습니다."- 뭐라고 말합니까? – matino

+5

"분명히 더 이상 사용할 수 없습니다"- 정교하게 말하십시오. 'decimal' *은 기본 파이썬 모듈이며 플랫폼 독립적입니다. –

+2

파이썬 스크립트의 이름을 decimal.py로 지정 했습니까? "기능 외 수입"이란 무엇을 의미합니까? – Blender

답변

6

decimal 모듈을 직접 호출하는 대신 decimal.Decimal을 사용하십시오. decimalDecimal, 'DefaultContext' 등의 속성을 포함하는 모듈 객체입니다. 이러한 속성에 액세스하려면 도트 표기법 (decimal.attr_name)을 사용하십시오.

>>> import decimal 
>>> decimal.Decimal('1.234') 
Decimal('1.234') 
>>> decimal.DefaultContext 
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999, capitals=1, flags=[], traps=[Overflow, InvalidOperation, DivisionByZero]) 

또한 from decimal import .. 구문을 사용하여 현재 네임 스페이스로 선택된 속성을 가져올 수 있습니다 : 당신은 또한 bigfloat 패키지

The bigfloat package is a Python wrapper for the GNU MPFR library for arbitrary-precision floating-point reliable arithmetic.

당신은 당신이 원하는 정확하게 작업 할 수 있습니다

>>> from decimal import Decimal, DecimalTuple #import two attrs in current namespace 
>>> Decimal('1.234') #now use it directly, no dot notation required 
Decimal('1.234') 
+1

원래 게시물에 명시된 바와 같이 해당 모듈을 사용할 수 없습니다. 답변 해 주셔서 감사합니다. 그러나 질문을 읽지 않고서는 내 시간과 내 시간이 낭비됩니다. –

+2

@BarrySmith 모듈을 사용할 수 없다는 것은 무엇을 의미합니까? – TerryA

+0

OP의 상황이 어리 석거나 풀릴 수도 있지만, 특별히 다른 해결책을 요구할 때'decimal' 모듈을 사용하여 답변을 게시하는 것은 우스운 일입니다. -1 –

관련 문제