강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của wldls05301127
wldls05301127

câu hỏi đã được viết

Bắt đầu lập trình: Giới thiệu về Python (Inflearn Original)

Cách sử dụng Python Print (1-3)

%f를 이용한 소수부 출력

Viết

·

340

0

안녕하세요,

%f 부분을 따라하다가 의문이 생겨 질문 남깁니다.

1. print('%20.2f' % (34.14343434))

2. print('%20.10f' % (34.14343434))

1번의 의도는 20자리를 확보하고 정수부, . , 소수부는 2자리까지만 출력하고 그 외에는 모두 0으로 자리를 채우겠다.

2번의 의도는 20자리를 확보하고 정수부, . , 소수부는 10자리까지만 출력하되, 입력받은 실수의 소수부의 길이(8)보다 출력할 소수부의 길이 값(10)이 크면 그 차이(2)를 포함해 모두 0으로 자리를 채우겠다였습니다.

실제로 출력결과도

1번의 경우 00000000000000034.14

2번의 경우는 000000034.1434343400로 제가 의도한 대로 잘 나와줬습니다.

그런데 문제는 3번에서 생겼습니다.

3. print('%020.15f' % (34.14343434)) 을 출력하니

0034.143434339999999 이런식의 결과가 나온것을 확인할 수 있었습니다.

왜 2번과 결과가 차이가 나는지 모르겠으며, 2번처럼 결과가 나오게 하고자하면 어떻게 해야하는지 궁금합니다.

python

Câu trả lời 3

0

niceman님의 프로필 이미지
niceman
Người chia sẻ kiến thức

부동 소수점 연산에 대해서 읽어보세요.

https://winterj.me/floating-point-in-python/

0

wldls0530님의 프로필 이미지
wldls0530
Người đặt câu hỏi

안녕하세요, 답변 감사합니다. 그래도 아직 의문점이 있습니다.

네 그렇다면 print('%020.15f' % (34.14343434)) 이 부분에서는 0034.143434340000000 이렇게 되어야하는 것 아닌가요?

제 컴퓨터에서는 0034.143434339999999 이렇게 출력되길래 이해가 안가는것이였습니다.

0

niceman님의 프로필 이미지
niceman
Người chia sẻ kiến thức

안녕하세요.

아래 내용을 정확하게 읽어보시고 모자르는 부분은 0으로 채워진다, 기본적으로 6자리로 표시된다.

규칙만 알고 다시 이해해 보세요!

24.2.3  서식 지정자로 소수점 표현하기

숫자 중에 소수점으로 된 실수를 넣어야 할 경우도 있습니다.

  • '%f' % 숫자
>>> '%f' % 2.3
'2.300000'

실수를 넣을 때는 %f를 사용하며 고정 소수점 fixed point의 f입니다. %f는 기본적으로 소수점 이하 6자리까지 표시하므로 2.3은 2.300000으로 표시됩니다.

소수점 이하 자릿수를 지정하고 싶다면 다음과 같이 f 앞에 .(점)과 자릿수를 지정해주면 됩니다.

  • '%.자릿수f' % 숫자
>>> '%.2f' % 2.3
'2.30'
>>> '%.3f' % 2.3
'2.300'
Hình ảnh hồ sơ của wldls05301127
wldls05301127

câu hỏi đã được viết

Đặt câu hỏi