vb.netではに暗黙的に型変換されてしまいます。
ちなみに暗黙とは
ググると
何も言わず、だまっていること。
ソース
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim d As Double = 1.49
Dim i As Integer = d
MsgBox(i)
End Sub
実行結果は
1です。
四捨五入された結果は1になりました。
このような間違いを防ぐために
Option Strict On にします。
暗黙的な変換をしないようにできます。
ソース
Option Strict On
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim d As Double = 1.49
Dim i As Integer = d
MsgBox(i)
End Sub
暗黙的な変換は許可されていませんとなります。
逆にいうと明示的にあえて変換は可能ですw
ソース
Option Strict On
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim d As Double = 1.5
Dim i As Integer = CInt(d)
MsgBox(i)
End Sub
実行結果は四捨五入されて2になります。
CTypeでの暗黙的なキャストも通りません。