강의로 돌아가기
김진주

통과는 되는데 실행결과가 좀 이상하게 나와요

일단 통과는 했는데 걸을 때 마다 -0.1kg이 되므로 person은 두번째 걸을 때 87.8kg이 되야 되는데 맨 뒤에 0.00~~~1은 왜 붙는 걸까요...?

인수가 걸어서 87.9kg이 되었습니다.
인수가 걸어서 87.80000000000001kg이 되었습니다.
인수가 먹어서 87.9kg이 되었습니다

작성중인 코드―human_class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Human():

    def __init__(self, name, weight):
        self.name = name
        self.weight = weight

    def __str__(self):
        return "{} (몸무게 {}kg)".format(self.name, self.weight)

    def eat(self):
        self.weight += 0.1
        print("{}가 먹어서 {}kg이 되었습니다.".format(self.name, self.weight))

    def walk(self):
        self.weight -= 0.1
        print("{}가 걸어서 {}kg이 되었습니다.".format(self.name, self.weight))

# 아래에서 person을 이름과 몸무게를 가지는 Human클래스의 인스턴스로 만들어보세요.
person = Human("인수", 88)
person.walk()
person.walk()
person.eat()
1 개의 답변
Demi

컴퓨터가 실수 연산(소숫점 연산) 오차때문에 나타나는 현상입니다.

유사한 질문을 참고하세요.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.