如果我对此进行硬编码,一切都如预期的那样:
var temp = String(getMyString());
var bytes = Utf8.parse(temp)
但这会返回与上面相同的字符串。
function getMyString() {
$.ajax({
dataType: 'json',
type: 'post',
contentType: 'application/json',
url: '/Controller/GetString',
success: function (response) {
var obj = JSON.parse(response.Success);
return obj;
}
});
}
这是我调用下一个代码块的ajax调用。
public JsonResult GetString()
{
var s = myClass.GetMyString();
return Json(new { Success = s });
}
我的控制器调用下一个代码块。
public static string GetMyString()
{
return "myString";
}
在静态类
中var num = 2;
var val = 0.2202323414;
var str = "" + val;
var m = str.match("(0\\.0*?)?([1-9][0-9\.]*)");
var zeros = m[1] === undefined ? - (m[2].indexOf(".") || m[2].length) + 1 :
m[1].length - 1;
var value = Math.round(val * (Math.pow(10,zeros+num-1))) * Math.pow(10, -zeros + 1 - num);
最终结果是抛出异常,因为Byte数组已关闭,因为输入字符串在某种程度上不相同。我认为异步控制器可能是罪魁祸首,所以这是我的下一次尝试。