解决方案 »

  1.   

    其实,你可以直接在c#中运行脚本,而无需转换  如何运行脚本参见地址 ,你需要添加MSScriptControl引用http://blog.csdn.net/return_false/article/details/7750862具体代码如下
    /* 
                 * 1.查询数据库得到公式 
                 * 2.查询数据库得到该公式的参数列表 
                 * 3.参数定义并赋值 
                 * 4.执行公式   --整个流程就像执行一段JS一样,先定义参数,然后根据公式计算出结果,如下 
                 */
                MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
                sc.Language = "JavaScript";
                string scriptF = @"function decode(a) {
                var b = -1,
                    c = 0,
                    d = '',
                    e = a.length,
                    f = a.charCodeAt(e - 1),
                    a = a.substring(0, e - 1);
                e--;
                for (var h = 0; h < e; h++) {
                    var i = parseInt(a.charAt(h), 36) - 10;
                    i >= 10 && (i = i - 7);
                    d = d + i.toString(36);
                    if (i > c) {
                        b = h;
                        c = i
                    }
                }
                d = d.replace(/-1/g, '-');
                a = parseInt(d.substring(0, b), 16);
                b = parseInt(d.substring(b + 1), 16);
                f = (a + b - parseInt(f)) / 2;
                b = (b - f) / 1E5;
                return 'lat='+b+',lng='+(f /1E5);
            }";
                sc.ExecuteStatement(scriptF);//加入这段脚本  
                string formula = "decode('ISRDIEZUAHCEAV')";//调用js,当然参数你可以拼接,或者将整个方法抽象为功能函数
                string result = sc.Eval(formula);//lat=22.54729,lng=114.06007