Python 코딩 Master Course - Advance 20강 재질문
- 과정명:
- 강사명:
print("I remember {0: .4} or {0: .4%} of what Lu Chao recited".format(7/67890))
I remember 0.0001031 or 0.0103% of what Lu Chao recited
여기서 {0: .4} 하면 소수점 4째자리까지만 표시된다고 하셨는데
왜 결과값은 소수점 7째자리인 I remember 0.0001031이 나오는건가요?
그리고 점 없이 그냥 {0:4}하면 계산된 결과가 통으로 나오던데 여기서 0:4의 의미가 뭐길래 7/67890결과값인
0.00010310797 나오는건가요? {0:4}의 의미가 뭐죠?
기존 답변 내용이 7/67890 계산기값은 다음과 같습니다 이렇게 3줄만 적혀있어서
재질문드립니다.....
답변 내용이 성의가 없어서 기분이 많이 나쁩니다..
제가 궁금했던것은 왜 강의 내용대로 {0: .4}를 했는데도 소수점 4째자리가 아니라 7째자리까지 나오는지...
{0: .4}가 아니라 그냥 {0:4}를 입력하면
print("I remember {0:4} or {0: .4%} of what Lu Chao recited".format(7/67890))
I remember 0.00010310796877301516 or 0.0103% of what Lu Chao recited
이렇게 나오는데 {0:4} 의 의미가 무엇이어서 0.00010310796877301516 이렇게 나오는지 질문드린겁니다
0
댓글
7/67890을 계산기로 계산하면 아래와 같습니다.
e-4를 없이 쓰면 0.0001031079687730152입니다.
여기에서
{0:4}, {0:.4%}의
0은 format 메서드에서 전달받을 값(7/67890)을 의미
.4는 소수점 이하 숫자 4개까지 출력(점이 붙어 있음, 소수점 자리 4자리 맞음)
4 => 소수점 없음! 소수점 4째자리가 아니고 실제 데이터 4개를 의미
그러므로 0.0001031이 출력되며,
.4%는 7/67890의 결과값을 백분율로 환산하여 출력 => 0.0001031의 %는 100을 곱하는 거니까 0.0103%가 출력 됩니다.
점 없이 그냥 {0:4}하면 계산된 결과가 통으로 나온다고 하셨는데, 0 자체가 통으로 나오게끔 하는 의미이고, 4는 정수쪽으로 데이터를 뽑는 요소인데
현재는 값 자체가 소수점을 포함하는 데이터이므로 의미가 없는 것으로 보여지겠습니다.
예를 들어 아래와 같이 입력해보시면
f = 3.14
print('f: %5.2f' % (f)) # f: 3.14
print('f: %05.2f' % (f)) # f: 03.14
주석에서 보이는 결과값이 보여지며 05.2f의 해석은 전체 5자리(소수점 포함)을 의미하며, 소수점 포함하여 3자리를 차지(.2f)하고, 정수쪽으로는 2자리가 남아 있는데 남는 자리는 0으로 채우라는 뜻입니다.
해석에 참고 하세요
https://withcoding.com/64
성의 있는 답변을 드렸는데, 답변봇이 사진으로 인해 정상적인 답변을 드리지 못한거 같습니다.
.4는 소수점 이하 숫자 4개까지 출력 => 소수점 4째자리가 아니고 소수점 이하 숫자 갯수 4개를 의미 그러므로 0.0001031이 출력되며,
소수점 이하 숫자 갯수 4개를 의미하는거면 0.0001이 나와야하는거 아닌가요?
정리 드립니다.
{0:4} <- 실제 코드 0.0001031 출력
{0:.4} <- .4는 소수점 이하 숫자 4개까지 출력
.4는 소수점 이하 숫자 4개까지 출력(점이 붙어 있음, 소수점 자리 4자리 맞음)
4 => 소수점 없음! 소수점 4째자리가 아니고 실제 데이터 4개를 의미
그러므로 0.0001031이 출력
이해되는 답변이였으면 좋켔습니다^^
댓글을 남기려면 로그인하세요.