> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬의 수학적 모듈 : 소수점 및 분수

파이썬의 수학적 모듈 : 소수점 및 분수

Jennifer Aniston
풀어 주다: 2025-03-09 09:15:14
원래의
621명이 탐색했습니다.

Mathematical Modules in Python: Decimal and Fractions 가장 기본적인 수학 연산조차도 때때로 잘못된 결과를 얻을 수 있습니다. 이는 특정 숫자의 정확한 값을 저장하는 한계 때문입니다. Python에서

모듈을 사용하여 이러한 한계를 극복 할 수 있습니다. 마찬가지로, 이전 자습서에서 배운

모듈은 분수 기반 산술 작업을 수행하는 데 도움이되지 않습니다. 그러나 파이썬의 모듈은 바로 그 일을합니다. decimal 이 튜토리얼은이 두 모듈과 그들이 제공하는 다른 기능을 소개합니다. math 소수 모듈 사용 cmath 볼 수 있듯이 함수의 값은 계산, 반올림 규칙 및 예외 행동의 정확도를 결정합니다. fractions 당신은

함수를 사용하여 계산의 현재 컨텍스트를 얻고 설정할 수 있습니다. 문을 사용하여 계산의 컨텍스트를 일시적으로 변경하십시오.

계산에 사용할 수있는 모듈에는 ,

및 가 반올림 알고리즘으로 세 가지 내장 컨텍스트가 있습니다. 이러한 맥락들 사이의 또 다른 차이점은 예외를 유발하는 행동입니다. 숫자 오버플로, 유효하지 않은 작동 및 분할과 관련된 예외는 제기되지 않습니다. 는 거의 모든 예외를 가능하게하며, 이는 디버깅에 적합한 반면 는 계산의 기본 컨텍스트로 사용됩니다.
from decimal import Decimal

Decimal(121)
# 返回 Decimal('121')

Decimal(0.05)
# 返回 Decimal('0.05000000000000000277555756')

Decimal('0.05')
# 返回 Decimal('0.05')

Decimal((0, (8, 3, 2, 4), -3))
# 返回 Decimal('8.324')

Decimal((1, (8, 3, 2, 4), -1))
# 返回 Decimal('-832.4')
로그인 후 복사
로그인 후 복사
다음은 다른 컨텍스트를 사용하여 간단한 분할에 대해 다른 결과를 얻는 방법의 예입니다.

다른 컨텍스트에 대한 정밀도 및 반올림 알고리즘의 차이를 언급하는 것 외에도, 에서 0에 대한 분할 결과가 getcontext()라는 것을 알 수 있습니다.

의 많은 함수는 컨텍스트 객체를 계산을 수행하기위한 매개 변수로 받아들입니다. 이렇게하면 계산 된 컨텍스트 또는 정밀 값을 지속적으로 설정하지 않을 수 있습니다. setcontext() with 분수 모듈 사용 때로는 점수에 대한 다양한 작업을 수행 해야하는 상황이 발생하거나 최종 결과가 점수가되어야합니다. 이 경우

모듈은 큰 도움이 될 수 있습니다.

ROUND_HALF_UP 점수를 만듭니다 ROUND_HALF_EVEN 모듈을 사용하면 숫자, 부동 소수점 번호, 소수점 숫자 및 문자열에서 ROUND_HALF_EVEN 인스턴스를 만들 수 있습니다. 모듈과 마찬가지로 부동 소수점 번호에서 분수를 생성 할 때이 모듈에 문제가 있습니다. 몇 가지 예는 다음과 같습니다. DefaultContext BasicContext 분수의 산술 작동 DefaultContext 추가 및 뺄셈과 같은 일반 숫자와 같은 분수에서 간단한 수학 연산을 수행 할 수도 있습니다.

from decimal import Decimal

Decimal(121)
# 返回 Decimal('121')

Decimal(0.05)
# 返回 Decimal('0.05000000000000000277555756')

Decimal('0.05')
# 返回 Decimal('0.05')

Decimal((0, (8, 3, 2, 4), -3))
# 返回 Decimal('8.324')

Decimal((1, (8, 3, 2, 4), -1))
# 返回 Decimal('-832.4')
로그인 후 복사
로그인 후 복사
portform 및 분모 함수

이 모듈에는

와 같은 몇 가지 중요한 방법이 있으며,이 방법은 최대

의 분모와 함께 주어진 분수 값에 가장 가까운 부분을 찾아서 반환합니다. 또한 속성을 ​​사용하여 주어진 분수의 분자를 반환 할 수 있으며 (가장 낮은 항로 표시) 분모를 반환하기 위해 limit_denominator(max_denominator) 속성을 ​​반환 할 수 있습니다. max_denominator numerator 점수 및 수학 모듈 모듈의 다양한 기능과 함께이 모듈을 사용하여 분수 기반 계산을 수행 할 수도 있습니다. denominator

import decimal
from decimal import ROUND_DOWN, ROUND_UP, Decimal as D

dec_a = D('0.153')
dec_b = D('0.231')
zero = D('0')

print("无上下文(使用默认值): ", dec_a/dec_b)
# 无上下文(使用默认值):  0.6623376623376623376623376623

decimal.setcontext(decimal.BasicContext)
print("基本上下文: ", dec_a/dec_b)
# 基本上下文:  0.662337662

decimal.setcontext(decimal.ExtendedContext)
print("扩展上下文: ", dec_a/dec_b)
# 扩展上下文:  0.662337662
print("扩展上下文: ", dec_b/zero)
# 扩展上下文:  Infinity

decimal.setcontext(decimal.DefaultContext)
print("默认上下文: ", dec_a/dec_b)
# 默认上下文:  0.6623376623376623376623376623

with decimal.localcontext() as l_ctx:
    l_ctx.prec = 5
    l_ctx.rounding = ROUND_UP

    print("局部上下文: ", dec_a/dec_b)
    # 局部上下文:  0.66234
로그인 후 복사
요약
    이 두 ​​모듈은 소수점 숫자와 분수로 공통 작업을 수행하는 데 충분해야합니다. 마지막 섹션에서 볼 수 있듯이 모듈과 함께이 모듈을 사용하여 원하는 형식의 다양한 수학적 함수의 값을 계산할 수 있습니다.

    이 시리즈의 다음 자습서에서는 Python에서 모듈을 배웁니다.

위 내용은 파이썬의 수학적 모듈 : 소수점 및 분수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿