n,m=map(int, input().split())
salt=n*0.07
water=n+m
result=int((salt/water)*10000)
print(f"{result/100:.2f}")
처름에 result에 그냥 100 곱하고 print 할 때 .2f 하니까 17/20으로 계속 틀렸었음
왜냐하면 부동소수점들이 계속 누적되니까
예를 들어, 내가 생각한 salt는 0.4인데 컴퓨터는 0.40000000000000001 이럴 수 있음.
부동소수점은 이진수로 표현되고, 정확히 표현되지않아서 근사값으로 저장됨.
그래서 result에서 100을 더 곱해서 정수형으로, 내가 원하는 만큼만 자르고
다시 /100 해서 소수점 아래 두자리까지만 남기는거
'코테 공부' 카테고리의 다른 글
| 백준 2644번 촌수계산(python) (0) | 2024.11.17 |
|---|---|
| 백준 2667 단지번호 붙이기 (python) (1) | 2024.11.15 |
| 구름레벨 인공지능 청소기 (3) | 2024.11.15 |
| 프로그래머스 Lv.2 n^2 배열 자르기 (1) | 2024.11.09 |
| 프로그래머스 Lv.2 영어 끝말잇기 (0) | 2024.11.09 |