190418-TIL
2019년에 Hexo 블로그에 쓴 글을 옮겨 왔습니다. 당시 이해를 그대로 두었습니다.
Today I Learned
오늘 한 일
-
Epsilon, Number Digit 등 컴퓨터에서 실수를 표현하는 방식과 상대오차에 대해서 깊게 배웠다.
-
실수형의 논리비교를 위한 is_equal 함수를 만들었다.
function is_equal(x, y, allowed=0){ // 둘 중 큰 수의 다음 숫자와의 오차의 allowed 배 정도 되는 범위 안에 있으면 같다고 판단한다. return (Math.abs(x-y) <= Math.max(Math.abs(x), Math.abs(y))*Number.EPSILON*Math.pow(2, allowed)); } function main(){ var sum = 0; for(var i =0; i< 100; i++){ sum += 0.01; } if(is_equal(sum, 1.0, 2)){ console.log("THE SAME"); } else{ console.log("NOT THE SAME"); } } -
Python을 배우는데 너무 재미있다. 익숙하지 않아 찾아보는 것이 번거롭지만 문법이나 기능이 흥미롭다.