CONVERT 문제가 부동소수점 오류로 안풀리는지 궁금합니다

  • dogeisgod
    dogeisgod

    python 3.6 기준으로
    7 * 0.4536 = 3.1752000000000002 이렇게 나옵니다
    부동소수점 오류가 있으면 문제가 안풀리는지 궁금합니다.

    혹시 제가 잘못했을 수도 있을것 같아 코드도 첨부합니다

    def checker(a):
        if a == 0:
            return "0.0000"
        else:
            return a
    
    
    def k_p(a):
        b = a*2.2046
        b = checker(b)
        b = " " + str(b) + " lb"
        return b
    
    def p_k(a):
        b = a*0.4536
        b = checker(b)
        b = " " + str(b) + " kg"
        return b
    
    def l_g(a):
        b = a*0.2642
        b = checker(b)
        b = " " + str(b) + " g"
        return b
    
    def g_l(a):
        b = a*3.7854
        b = checker(b)
        b = " " + str(b) + " l"
        return b
    
    def detect(a,b):
        a = eval(a)
        if b == "kg":
            return k_p(a)
        elif b == "lb":
            return p_k(a)
        elif b =="l":
            return l_g(a)
        else:
            return g_l(a)
    
    
    z = []
    a = int(input())
    
    for i in range(a):
        a = input()
        b = a.split()
        k = i + 1
        c = str(k) + detect(b[0],b[1])
        z.append(c)
    
    for i in z:
        print(i)
    

    6년 전
1개의 댓글이 있습니다.
  • seico75
    seico75

    the appropriately converted value rounded to 4 decimal places
    즉 4째자리로 반올림해야합니다.
    반올림 코드가 없네요.
    보통 반올림하라거나 몇자리까지만 맞으면 된다고 해서 부동소수점 오류는 영향을 안주는 것 같습니다.


    6년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.