>

사용할 수 있음을 알고 있습니다 : -0.5.as_integer_ratio ();정수 분수를 얻으십시오 : 1/2

그러나 p와 같은 소수점 이하 자릿수가 있으면 -8.333333333333334;이것은 25/3와 동일하다;그리고 나는 8.333333333333334.as_integer_ratio ()를 사용한다. 나는 얻는다 : (4691061961859793, 562949953421312)

대신 "clean"25/3에 도달하는 기능/방법이 있습니까?


  • 답변 # 1

    25/3와 같은 분수의 정확한 표현을 원한다면, 먼저 부동 소수점에서 수학을 수행해서는 안됩니다. fractions.Fraction 와 같은 정확한 합리적 유형을 사용해야합니다 :

    from fractions import Fraction
    x = Fraction(75)
    y = x/9
    print(y)
    
    

    출력 :

    25/3
    
    

    부동 소수점 숫자 또는 10 진수 문자열이 붙어 있으면이를 Fraction 로 변환 할 수 있습니다   limit_denominator 를 사용하십시오.  분모가 작은 근처 분수를 찾습니다. 기본적으로 "작은"은<= 1000000으로 처리되지만 제한을 구성 할 수 있습니다

    print(Fraction(8.333333333333334).limit_denominator())
    
    

    출력 :

    25/3
    
    

    처음부터 합리적인 산술로 모든 것을 처리하는 것이 거의 항상 더 좋습니다.

  • 답변 # 2

    @Praction 및 @Decimal 파이썬 모듈을 가져 와서 간단하게 수행 할 수 있으므로 작동 방법을 확인하십시오.

    10 진수 가져 오기에서 분수에서 가져 오기 소수 분수

    분수 (소수 ( '8.33333333333334')). limit_denominator ()

    참고 : limit_denominator는 가능한 한 가장 낮은 값으로 분수를 단순화하려고했습니다. 그리고 십진수로 전달 된 인수는 따옴표로 묶어야합니다

  • 이전 python - 가져온 함수를 사용하여 출력 변수 저장
  • 다음 mysql - django의 원시 SQL 구문에 오류가 있습니다