unsigned int64 (VT_UI8) 値を返すメソッドを持つ COM オブジェクトがあります。COM オブジェクトをロードしてそのメソッドを呼び出し、値をそのまま取得できる JavaScript を含む HTML ページがあります。
var foo = MyCOMObject.GetInt64Value();
この値は、次を使用してメッセージ ダイアログでユーザーに簡単に表示できます。
alert(foo);
または次の方法でページに表示されます。
document.getElementById('displayToUser').innerHTML = foo;
ただし、この値を Number として使用することはできません (たとえば、2 を掛けようとした場合)、ページで "Number expected" エラーがスローされます。「typeof(foo)」をチェックすると、「unknown」が返されます。
次のようにして、これに対する回避策を見つけました。
document.getElementById('displayToUser').innerHTML = foo;
var bar = parseInt(document.getElementById('displayToUser').innerHTML);
alert(bar*2);
私が知る必要があるのは、そのプロセスをより効率的にする方法です。具体的には、一部のドキュメント要素の innerHTML を foo に設定してから取得するのではなく、明示的に foo を String にキャストする方法はありますか。私は次のようなものを呼んでも構いません:
alert(parseInt((string)foo) * 2);
String 変換を経由せずに int64 を Number に直接変換する方法があればさらに良いでしょうが、私はその希望をあまり持ちません。