Programing

파이썬에서 나누기 연산자를 사용할 때 십진수 값을 어떻게 얻습니까?

lottogame 2020. 12. 3. 07:22
반응형

파이썬에서 나누기 연산자를 사용할 때 십진수 값을 어떻게 얻습니까?


예를 들어 표준 나눗셈 기호 '/'는 0으로 반올림됩니다.

>>> 4 / 100
0

그러나 0.04를 반환하고 싶습니다. 나는 무엇을 사용합니까?


세 가지 옵션이 있습니다.

>>> 4 / float(100)
0.04
>>> 4 / 100.0
0.04

C, C ++, Java 등과 동일한 동작입니다.

>>> from __future__ import division
>>> 4 / 100
0.04

-QnewPython 인터프리터에 인수 전달하여이 동작을 활성화 할 수도 있습니다 .

$ python -Qnew
>>> 4 / 100
0.04

두 번째 옵션은 Python 3.0의 기본값입니다. 이전 정수 나누기를 원하면 //연산자 를 사용해야합니다 .

편집 : ΤΖΩΤΖΙΟΥ-Qnew 덕분 에 섹션 추가 !


다른 답변은 부동 소수점 값을 얻는 방법을 제안합니다. 이 wlil은 사용자가 원하는 것과 비슷하지만 정확하지는 않습니다.

>>> 0.4/100.
0.0040000000000000001

실제로 십진수 값을 원하면 다음을 수행하십시오.

>>> import decimal
>>> decimal.Decimal('4') / decimal.Decimal('100')
Decimal("0.04")

그러면 10 진법의 4/100이 "0.04" 라는 것을 제대로 알고있는 오브젝트를 얻을 수 있습니다 . 부동 소수점 숫자는 실제로 10 진수가 아니라 2 진수입니다.


다음과 같이 용어 중 하나 또는 모두를 부동 소수점 숫자로 만듭니다.

4.0/100.0

또는 Python 3.0에서 기본이 될 기능인 '진정한 분할'을 켜십시오. 모듈 또는 스크립트 상단에서 다음을 수행하십시오.

from __future__ import division

Python의 10 진수 패키지도 살펴볼 수 있습니다 . 이것은 좋은 십진 결과를 제공 할 것입니다.

>>> decimal.Decimal('4')/100
Decimal("0.04")

파이썬에게 정수가 아닌 부동 소수점 값을 사용하도록 지시해야합니다. 입력에 소수점을 사용하여 간단하게 수행 할 수 있습니다.

>>> 4/100.0
0.040000000000000001

4.0 / 100 시도


간단한 경로 4 / 100.0

또는

4.0 / 100


여기에 두 가지 가능한 경우가 있습니다.

from __future__ import division

print(4/100)
print(4//100)

숫자 끝에 ".0"을 추가 할 수도 있습니다.

4.0/100.0


You cant get a decimal value by dividing one integer with another, you'll allways get an integer that way (result truncated to integer). You need at least one value to be a decimal number.


Add the following function in your code with its callback.

# Starting of the function
def divide(number_one, number_two, decimal_place = 4):
    quotient = number_one/number_two
    remainder = number_one % number_two
    if remainder != 0:
        quotient_str = str(quotient)
        for loop in range(0, decimal_place):
            if loop == 0:
                quotient_str += "."
            surplus_quotient = (remainder * 10) / number_two
            quotient_str += str(surplus_quotient)
            remainder = (remainder * 10) % number_two
            if remainder == 0:
                break
        return float(quotient_str)
    else:
        return quotient
#Ending of the function

# Calling back the above function
# Structure : divide(<divident>, <divisor>, <decimal place(optional)>)
divide(1, 7, 10) # Output : 0.1428571428
# OR
divide(1, 7) # Output : 0.1428

This function works on the basis of "Euclid Division Algorithm". This function is very useful if you don't want to import any external header files in your project.

Syntex : divide([divident], [divisor], [decimal place(optional))

Code : divide(1, 7, 10) OR divide(1, 7)

Comment below for any queries.


Import division from future library like this:

from__future__ import division

참고URL : https://stackoverflow.com/questions/117250/how-do-i-get-a-decimal-value-when-using-the-division-operator-in-python

반응형