본문 바로가기

BOOK

[notion] 책읽기와 데이터 정밀도

notion을 이용해서 책 읽기를 기록하고 있다.

전체 책 쪽과 현재 읽은 쪽을 이용하면 몇 % 읽었는지 알 수 있다.

아래와 같은 수식을 이용했다. ceil을 사용한 이유는 소숫점이 14.550264550265 와 같이 너무 길어져 버리기 때문이다.

ceil(prop("읽은쪽") / prop("쪽수") * 100)

이렇게 하다보면 문제가 두 배를 읽었는데 퍼센트는 4배가 커지는 현상이 발견되었다.

  • 2019-07-29 데이터 중심 애플리케이션 설계: p.222 (39%)
  • 2019-07-30 데이터 중심 애플리케이션 설계: p.232 (40%)  + p.10 (+1%)
  • 2019-07-31 데이터 중심 애플리케이션 설계: p.252 (44%) + p.20 (+4%)

이유는 ceil (올림) 연산이 민감한 반올림 연산처럼 동작하기 때문이다.
소수점 제거 함수 삼총사 ceil(), floor(), round() 참고.

 

그래서 아래와 같이 ceil 대신 round 로 함수를 변경하였다.

round(prop("읽은쪽") / prop("쪽수") * 100)
  • 2019-07-29 데이터 중심 애플리케이션 설계: p.222 (38%)
  • 2019-07-30 데이터 중심 애플리케이션 설계: p.232 (40%)  + p.10 (+2%)
  • 2019-07-31 데이터 중심 애플리케이션 설계: p.252 (43%) + p.20 (+3%)

좀 더 데이터가 7월 30일 쪽으로 1% 씩 이동했음을 알 수 있다.

회고

사실 처음에는 아래와 같이 소숫점을 늘리는 것을 처음에 고려하였음 (회고)

ceil(prop("읽은쪽") / prop("쪽수") * 10000) / 100