我有一个 COM 对象,它有一个返回无符号 int64 (VT_UI8) 值的方法。我们有一个 HTML 页面,其中包含一些 JavaScript,这些 JavaScript 可以加载 COM 对象并调用该方法,以按如下方式检索值:
var foo = MyCOMObject.GetInt64Value();
这个值可以很容易地在消息对话框中显示给用户,使用:
alert(foo);
或通过以下方式显示在页面上:
document.getElementById('displayToUser').innerHTML = foo;
但是,我们不能将此值用作数字(例如,如果我们尝试将其乘以 2)而不会使页面抛出“预期数字”错误。如果我们检查“typeof(foo)”,它会返回“unknown”。
通过执行以下操作,我找到了解决方法:
document.getElementById('displayToUser').innerHTML = foo;
var bar = parseInt(document.getElementById('displayToUser').innerHTML);
alert(bar*2);
我需要知道的是如何让这个过程更有效率。具体来说,有没有办法将 foo 显式地转换为 String,而不必将某些文档元素的 innerHTML 设置为 foo 然后从中检索它。我不介意这样称呼:
alert(parseInt((string)foo) * 2);
如果有一种方法可以直接将 int64 转换为数字,而不经过字符串转换,那就更好了,但我对此抱有较小的希望。