開発環境:
Windows10 Pro
Microsoft Visual Studio Community 2019
開発言語:
VB.NET FrameWork4.7.2

VB.NET では名前空間Microsoft.VisualBasic(imports Microsoft.VisualBasic)
のVal関数ですが、単純に文字列をDoubleに変換してくれる便利な関数と思っていました。
より厳密には
「文字列から数値として読み取り可能な部分のみを返すことができ、不正な文字ばかりの場合は、0 を返すことができる。」関数ということのようです。

指定した文字列に含まれる値を取得する (Val)

に詳しく書いてありました。

 

ただしVal 関数は、「数値の一部として認識できない最初の文字で、文字列の読み取りを中止します。

 数値の一部と見なされることが多い記号や文字 (ドル記号、コンマなど) は、認識されません。」

とのことですので、

「123,234.50」の場合123までしか返ってきません。

 

123234.50という値を取得するには、

  Dim mStr as string = "123,234.50"
  if IsNumeric(mStr) then
    Debug.print(cDec(mStr))
  End if

のような処理となります。

Val関数はやはりあまり使わない方が無難のようです。

 

それはともかく、体がかゆい。
乾燥のせいか・・。
夜、加湿器を付けているが、リビングと寝室で一台なので、少し無理があるか・・・。
寝室用に小さくて良いので加湿器が欲しい。
今年はなぜかミーは寝室で寝ずにリビングで寝ている。
元々ミーを室内飼いするために買った加湿器なので・・・。
でも水が24時間持たない。