봇을 만들다 보면 계산을 할때가 많습니다. 예를들면 이러한 기능을 만들때는 거의 필수적인데요.
이런 그래프 그리기등 많은부분에서 쓰이고 있는데요 이를 해결하기 위해 보통 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 보다 속도가 많이 느립니다.
이런 그래프 그리기등 많은부분에서 쓰이고 있는데요 이를 해결하기 위해 보통 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 보다 속도가 많이 느립니다.
'오픈소스' 카테고리의 다른 글
계산함수 업그레이드 버전 [오픈소스] (0) | 2019.03.13 |
---|---|
미로생성소스 (오픈소스) (0) | 2019.03.12 |
가위바위보 전적저장 [오픈소스] (3) | 2019.01.26 |
전체보기로 만들기 [오픈소스] (3) | 2019.01.13 |
그래프그리기 [오픈소스] (13) | 2019.01.12 |