C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 94 を表示中)
■56114 / )  Re[1]: VBのInteger
□投稿者/ 魔界の仮面弁士 (2002回)-(2010/12/28(Tue) 12:36:32)
No56111 (ぶん さん) に返信
> 分類:[VB.NET/VB2005 以降] 
> Windows XP
> VB 6.0
> で開発しています。
分類とあっていないような。

> 今、Formから値を持ってきて
その値というのは、文字列なのでしょうか?


>     If IsNumeric(No.Text) Then
>         iNo = CInt(No.Text)   ' 文字列を数値に変換
念のために確認。その判定で、仕様は満たせていますか?

IsNumeric("123.5")  は True を返し、CInt すると 124 になります。(123.5)
IsNumeric("1,,,2")       は True を返し、CInt すると  12 になります。
IsNumeric("98,76.54E-3") は True を返し、CInt すると  10 になります。(9.87654)
IsNumeric("3D2")         は True を返し、CInt すると 300 になります。
IsNumeric("&H123")       は True を返し、CInt すると 291 になります。
IsNumeric("&123")        は True を返し、CInt すると  83 になります。
IsNumeric("(10)")        は True を返し、CInt すると -10 になります。
IsNumeric("1.5-")        は True を返し、CInt すると  -2 になります。(-1.5)
IsNumeric("43210")       は True を返し、CInt すると実行時エラー 6 になります。(オーバーフロー)


>     Else
>         iNo = ※
>     End If
> 何も入れないというのは、
何も入れないなら、Else 句自体不要でしょう。
「何も入れない」ということと、「空っぽであることを表すデータを入れる」ことは異なります。

> Integer型ではできないのでしょうか?
たとえば、「iNo が 0 なら、空データとして扱う」とか
「iNo が &H8000 なら、空データとして扱う」などのように、
プログラム内で決め事として取り扱えば良いと思います。

もしくは、Integer 型ではなく Variant 型としておき、
空データは Empty や Null を使って表現するといった所でしょうか。


> 0~10以外の場合
> 番号不正エラー
> というエラーを出すので、
> 文字の場合もそのエラーを出したいです。
範囲外の値を設定しようとした場合に、それを補足したいという意図ならば、
iNo をモジュールレベル変数として管理するのではなく、
Property プロシージャとして実装する事をおすすめします。

返信 編集キー/


管理者用

- Child Tree -