
'もう一質問。頻繁に考えていたこと
Class himajin100000
Shared Sub Main
Dim hoge As Integer
Dim fuga As Double = 5.5
hoge = System.Convert.ToInt32(5.5)
System.Diagnostics.Debug.Print(hoge.ToString)
hoge = CType(5.5,Integer)
System.Diagnostics.Debug.Print(hoge.ToString)
'という変換を防ぎたいです。
'Double値が5.0など、整数として切りの良い数字のときのみ変換したい
'それ以外はプログラマのミスとしてエラーが検出できるように。
'なお、
'hoge = DirectCast(5.5,Integer)
'とか
'hoge = DirectCast(System.Math.Floor(5.5),Integer)
'はエラーが出ます。
'今まで私は,
hoge = Integer.Parse(System.Math.Floor(5.5).ToString)
System.Diagnostics.Debug.Print(hoge.ToString)
'という風に書いてきました。
'Integer.Parse((5.5).ToString) System.FormatException
'何かString型を介している地点で冗長な気がするので
'もっといい方法・わかりやすい方法等があれば教えてください
End Sub
End Class
No.2ベストアンサー
- 回答日時:
すいません、ダメですね。
(Integerは値型なので、TryCastはダメなのを忘れてました orz)
下記のようにInteger.TryParseをやってみてください。
(これなら、文字列で"5.5"と入っていても、例外は発生しません)
この辺りは、私も2008 Beta2 + .NET Framework3.5 で私も試しました。
Public Class1
Sub Main()
Dim hoge As Integer
Dim age As Double = 5.5
Integer.TryParse(age.ToString(), hoge)
Console.WriteLine(hoge)
End Sub
End Class
また、間違った情報を教えてしまって、お手数をお掛け致しました
ことをお詫び申し上げます。
No.1
- 回答日時:
VB.NETの2005を使っているんでしたら、TryCastが使えます。
If TryCast(System.Math.Floor(5.5),Integer) IsNot Nothing Then
hoge = DirectCast(System.Math.Floor(5.5),Integer)
End If
とすれば、いいだけのような気がします。
2005じゃない場合は、考えないといけないですね。
その場合は、別途補足下さい。
この回答への補足
回答ありがとうございます。
しかし成功しません。(VB2008 Beta2,SharpDevelop 3 Alpha)
Public Class NewClass
Shared Sub Main()
Dim hoge As Integer
If TryCast(System.Math.Floor(5.5), Integer) IsNot Nothing Then
hoge = DirectCast(System.Math.Floor(5.5), Integer)
End If
End Sub
End Class
コンパイルエラー
●'TryCast' must be reference type, but 'Integer' is a value type.
●Value of type 'Double' cannot be converted to 'Integer'
が出ます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:13
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/11 08:33
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- Visual Basic(VBA) VBA 配列を使ったコードに直していただけますか 4 2023/05/06 15:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA の ChangeFileAccess
-
サンプルによく出てくるhogehog...
-
Linux バイナリ実行できない "...
-
【Jquery】changeイベント毎にa...
-
【正規表現】【javascript】CR...
-
ASP+アクセスでのSQLコメントに...
-
confirmの連続?
-
親の親の・・・を抽出するSQL文
-
サブウインドウから親ウインド...
-
HTTPSのとき":"が"%3A"ではなく...
-
javascriptで文字挿入でtoggle...
-
Boolean型配列中のTrueの有無を...
-
関数を呼び出すHTMLタグ<body o...
-
ボタンをクリックすると数が増...
-
引数付きコンストラクタでコン...
-
アンカーリンクをクリックさせ...
-
プログラミングのペーパーテス...
-
同じ型【ハイフンと数字】だけ...
-
javascriptでiframeのURL変更は?
-
<a>タグのテキストを取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
HTTPSのとき":"が"%3A"ではなく...
-
ボタンをクリックすると数が増...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
Excel VBA の ChangeFileAccess
-
アンカーリンクをクリックさせ...
-
javascriptで文字挿入でtoggle...
-
ifreamをリロードしたい
-
static と externについて
-
同じ型【ハイフンと数字】だけ...
-
【正規表現】【javascript】CR...
-
System::Drawing::Color::XXXX...
-
MFCのキャプション変更
-
VB.NETで変数の型は自作...
-
【Jquery】changeイベント毎にa...
-
サブウインドウから親ウインド...
-
Vb.netのグローバル変数の宣言...
-
window.onloadでのfunction
-
hogehogeの由来
おすすめ情報