코테 공부

구름 소금물의 농도 구하기 (python)

dnjswngo 2024. 11. 15. 20:16

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 해서 소수점 아래 두자리까지만 남기는거