문제

예를 들어 표준 나누기 기호 '/'는 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

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

$ python -Qnew
>>> 4 / 100
0.04

두 번째 옵션은 Python 3.0의 기본값이 됩니다.이전 정수 나누기를 사용하려면 다음을 사용해야 합니다. // 운영자.

편집하다:섹션을 추가했습니다. -Qnew, 덕분에 ΤΖΩΤΖΙΟΥ!

다른 팁

다른 답변은 부동 소수점 값을 얻는 방법을 제안합니다.이는 원하는 결과에 가깝지만 정확하지는 않습니다.

>>> 0.4/100.
0.0040000000000000001

실제로 원하는 경우 소수 값을 지정하려면 다음을 수행하십시오.

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

그러면 4/100을 올바르게 아는 객체가 제공됩니다. 기본 10 "0.04"입니다.부동 소수점 숫자는 실제로 2진수입니다. 즉,십진수가 아닌 이진수.

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

4.0/100.0

또는 Python 3.0에서 기본으로 설정되는 '진정한 나누기' 기능을 켜면 원하는 작업을 수행할 수 있습니다.모듈이나 스크립트 상단에서 다음을 수행합니다.

from __future__ import division

Python의 내용을 살펴보고 싶을 수도 있습니다. 소수 패키지도 그렇고.이것은 좋은 십진수 결과를 제공할 것입니다.

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

정수가 아닌 부동 소수점 값을 사용하도록 Python에 지시해야 합니다.입력에 소수점을 직접 사용하면 됩니다.

>>> 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

하나의 정수를 다른 정수로 나누어서 십진수 값을 얻을 수는 없습니다. 항상 그런 식으로 정수를 얻게 됩니다(결과는 정수로 잘립니다).십진수가 되려면 하나 이상의 값이 필요합니다.

콜백을 사용하여 코드에 다음 함수를 추가합니다.

# 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

이 기능은 "유클리드 분할 알고리즘"을 기반으로 작동합니다.이 기능은 프로젝트에서 외부 헤더 파일을 가져오지 않으려는 경우 매우 유용합니다.

구문 :Divide([제수], [제수], [소수점(선택))

코드: divide(1, 7, 10) 또는 divide(1, 7)

문의사항이 있으면 아래에 댓글을 남겨주세요.

다음과 같이 미래 라이브러리에서 부문을 가져옵니다.

from__future__ import division
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top