English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Python에서는 Decimal 모듈이 있으며, 이는 10진수 부동소수점 작업을 수행합니다. 이 모듈은 정확한 절삭 부동소수점 연산을 제공합니다.
먼저 사용하려면, Decimal 표준 라이브러리 모듈을 가져와야 합니다.
import decimal
이 절에서는 Decimal 모듈의 중요한 기능들을 살펴보겠습니다.
sqrt()
및 지수 함수exp()
该sqrt()
메서드는 주어진 10진수 유형 객체의 제곱근을 계산합니다. 그리고 이exp()
메서드는 주어진 x에 대한 e^x 값을 10진수로 반환합니다.
#sqrt()와 exp() 메서드 수행 import decimal my_dec = decimal.Decimal(25.36) print(my_dec) #10진수 숫자의 루트를 찾기 위해 print('루트는: ' + str(my_dec.sqrt())) #10진수 숫자의 e^x를 찾기 위해 print('e^x는: ' + str(my_dec.exp()))
출력 결과
25.3599999999999994315658113919198513031005859375 루트는: 5.035871324805668565859161094 e^x는: 103206740212.7314661465187086
소수 구성 모듈에는 몇 가지 대수 함수가 있습니다. 여기서는 그 중 두 가지를 논의하겠습니다. 첫 번째는ln()
메서드. 이 메서드는 10진수의 자연 대수를 찾기 위해 사용됩니다.
다른 방법은 log10() 메서드. 이 메서드는10의 기본 대수 값.
#ln()와 log 수행10() 메서드 import decimal my_dec = decimal.Decimal(25.36) print(my_dec) #e의 기본 대수 print('ln(x) is: ') + str(my_dec.ln())) #Find logarithmic value with base 10 print('log(x) is: ') + str(my_dec.log10))
출력 결과
25.3599999999999994315658113919198513031005859375 ln(x) is: 3.233173129569025152000878282 log(x) is: 1.404149249209695070459909761
fma()
方法as_tuple方法用于将十进制表示为具有三个元素的元组。元素是符号,数字和指数值。在符号字段中,当数字为0时,表示十进制为正;当数字为1时,表示负数。
该fma()
方法称为融合乘法和加法。如果我们使用fma(x,y),它将计算(number * x)+ y。在这种情况下,(number * x)部分不会四舍五入。
#Perform as_tuple() and fma() methods import decimal my_dec1 = decimal.Decimal(5.3) print(my_dec1) my_dec2 = decimal.Decimal(-9.23) print(my_dec2) #Show decimal as tuple print('\nmy_dec1 as tuple: ' + str(my_dec1.as_tuple())) print('\nmy_dec2 as tuple: ' + str(my_dec2.as_tuple())) #Perform Fused Multiply and Add print('\n(x*5)+8 is: ' + str(my_dec1.fma(5, 8)))
출력 결과
5.29999999999999982236431605997495353221893310546875 -9.230000000000000426325641456060111522674560546875 my_dec1 as tuple: DecimalTuple(sign=0, digits=(5, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 2, 2, 3, 6, 4, 3, 1, 6, 0, 5, 9, 9, 7, 4, 9, 5, 3, 5, 3, 2, 2, 1, 8, 9, 3, 3, 1, 0, 5, 4, 6, 8, 7, 5), exponent=-50) my_dec2 as tuple: DecimalTuple(sign=1, digits=(9, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 6, 3, 2, 5, 6, 4, 1, 4, 5, 6, 0, 6, 0, 1, 1, 1, 5, 2, 2, 6, 7, 4, 5, 6, 0, 5, 4, 6, 8, 7, 5), exponent=-48) (x*5)+8 is: 34.49999999999999911182158030
compare()
方法此比较方法用于比较两个十进制数。当数字相同时,它将返回0,否则,当第一个数字较大时,它将给出+1,而当第一个参数较小时,它将返回-1。
#Perform compare() method import decimal #Compare when both are equal + -5.3).compare(decimal.Decimal(-5.3)))) #Compare when first one is smaller + -5.3).compare(decimal.Decimal(9.26)))) #Compare when first one is greater + -5.3).compare(decimal.Decimal(-13.25))))
출력 결과
Compare value: 0 Compare value: -1 Compare value: 1
십进制 숫자를 다른 십进制 객체에 복사할 수 있는 여러 가지 방법이 있습니다. 첫 번째 방법은 copy_abs()입니다. 십进制 숫자에서 절대 값을 가져오는 데 사용됩니다. 두 번째 방법은 copy_negate()입니다. 실제 숫자를 부정한 후 십进制 숫자를 복사합니다. 세 번째 함수는 copy_sign()입니다. 이 메서드는 두 번째 매개변수에서 기호를 가져와 첫 번째 매개변수를 인쇄합니다.
#copy_abs(), copy_negate(), copy_sign() 수행 import decimal my_dec = decimal.Decimal(-25.36) print(my_dec) #절대 값을 복사 temp_dec = my_dec.copy_abs() print('절대값은: ' + str(temp_dec)) #부정 값을 복사 my_dec = decimal.Decimal(7.26) temp_dec = my_dec.copy_negate() print('의 부정' 7.26 is: ' + str(temp_dec)) #두 번째 인자에서 기호 값을 첫 번째 인자로 복사 my_dec = decimal.Decimal(-25.36) temp_dec = my_dec.copy_sign(decimal.Decimal(12.5)) print('두 번째 인자에서 기호 복사: ' + str(temp_dec))
출력 결과
-25.3599999999999994315658113919198513031005859375 절대값은: 25.3599999999999994315658113919198513031005859375 의 부정: 7.26 is: -7.2599999999999997868371792719699442386627197265625 두 번째 인자에서 기호 복사: 25.3599999999999994315658113919198513031005859375
최대값과 최소값은 두 수 사이의 최대값이나 최소값을 찾는 두 가지 간단한 방법입니다.
#max()와 min() 메서드 수행 import decimal my_dec1 = decimal.Decimal(5.3) print(my_dec1) my_dec2 = decimal.Decimal(-9.23) print(my_dec2) #최소와 최대 표시 print('최소: ' + str(my_dec1.min(my_dec2))) print('최대: ' + str(my_dec2.max(my_dec1)))
출력 결과
5.29999999999999982236431605997495353221893310546875 -9.230000000000000426325641456060111522674560546875 최소: -9.230000000000000426325641456 최대: 5.299999999999999822364316060