Double→Integerへの変換で「意図しない変換を防ぐ」
'もう一質問。頻繁に考えていたこと
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
お礼
みなさん、回答が早くてびっくりしました。 e-Wordsにこんなのものってるんですね(右クリックに登録しているのに使いこなせていないです。お恥ずかしい) ありがとうございました。すっきりしました。