본문 바로가기

오픈소스

계산함수 [오픈소스]

 봇을 만들다 보면 계산을 할때가 많습니다. 예를들면 이러한 기능을 만들때는 거의 필수적인데요.


 이런 그래프 그리기등 많은부분에서 쓰이고 있는데요 이를 해결하기 위해 보통 eval을 많이 쓰는데요 이는 eval에서 알아들을 수 있는 언어로 바꿔줘야 하기 때문에 그대로 적용하기에는 힘듬니다.

ex) 2^4 -> Math.pow(2, 4)
       sin30 -> Math.sin(30)

 그래서 저는 이런 계산식들을 편하게 하기위해 구글의 힘을 빌렸습니다.


  구글에 식을 입력하면 이렇게 답이 나오는데요. 저는 이부분을 파싱하여 가져왔습니다. 파싱에대해서는 나중에 자세한 강의를 올리겠습니다.

function math(a){
    var answer = Utils.getWebText("https://www.google.co.kr/search?source=hp&ei=xjwmXJH8LpHK8wXluIrYAQ&q="+a.replace(/\+/g,"%2B")).split("<span class=\"cwcot gsrt\" id=\"cwos\"> ")[1].split(" ")[0];
    return answer;
}

 사용법은 이 함수를 기존에 있던 response 함수 위에 선언 후 response 함수 안에서 계산이 필요한 부분에 math(식)을 넣으면 답이 나옵니다. 


 물론 파싱을 해오는거라 eval 보다 속도가 많이 느립니다.