2016-05-18 7 views
0

次のコードでは、次のコードを入力したときに間違った結果が発生しました。VB.NetのMath.Round()関数の結果が正しくない

コードは次のとおりです。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    MsgBox(TextBox1.Text & " = Val(" & Val(TextBox1.Text) & ") = Math.Round(" & Math.Round(Val(TextBox1.Text)) & ")") 
End Sub 

入力=>出力受信

3.5 => 4

5.5 => 6

4.5 => 4

恐らくMath.round関数が最初に正しい結果を返す適用2つの入力がありますが、3番目の結果は正しくありません。

私はそれを整理するのを手伝ってください。

答えて

0
Math.Round(4.5, 0, MidpointRounding.AwayFromZero) 
1

documentationは言う:

Dの小数成分が途中偶数および他の奇数であるもの する2つの整数の間にある場合、偶数が返されます。

あなたは、使用しようとすることができます。

Math.Round(4.5, 2, MidpointRounding.AwayFromZero) 

あなたは、コードの予想結果はとして従うべき場合、コードがどうあるべきかMidpointRounding Enumeration

enter image description here

+0

を確認することができます。 x.5の場合、結果はx + 1ですか? – Ravi

関連する問題