VBScriptでカッコつきの数字を変換するとマイナスの値になる

VBScriptでは、数値として認識できる文字列は計算できる。

たとえば、次のようなコードを書く

wsh.echo 1+”2”

結果は次のようになる:

3

ここまでは、誰でも想像の範囲内だがカッコをつけると面白いことがおきる。たとえば、

wsh.echo 1+”(2)”

とすると、結果は次のようになる:

-1

これは、"(2)"がマイナスの値として"-2"として解釈されるため、1-2 は –1 になる。

これはcint(“(2)”)と書いても同じである。従って、isnumeric(“(2)”)は、Trueになる。

カッコ付の文字列をマイナスの値として解釈したくない場合は、正規表現などを使ってチェックするしかないようだ。

初めてVBScriptを使ってから、14年以上が経過しているが、未だにわからないことがある。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック