[解決済み] VB.NETとC#の整数の割り算について【重複
2023-08-16 21:51:57
質問
この2つのコードが異なる結果を示す理由を説明してくれる人はいますか?
VB.NET v4.0
Dim p As Integer = 16
Dim i As Integer = 10
Dim y As Integer = p / i
//Result: 2
C# v4.0
int p = 16;
int i = 10;
int y = p / i;
//Result: 1
どのように解決するのですか?
この2つのスニペットが生成するILコードを見ると、VB.NETはまず整数値をdoubleに変換し、除算を適用して結果を丸め、int32に戻してyに格納していることが分かります。
C# はそのいずれも行いません。
VB.NET ILコードです。
IL_0000: ldc.i4.s 10
IL_0002: stloc.1
IL_0003: ldc.i4.s 0A
IL_0005: stloc.0
IL_0006: ldloc.1
IL_0007: conv.r8
IL_0008: ldloc.0
IL_0009: conv.r8
IL_000A: div
IL_000B: call System.Math.Round
IL_0010: conv.ovf.i4
IL_0011: stloc.2
IL_0012: ldloc.2
IL_0013: call System.Console.WriteLine
C#のILコードです。
IL_0000: ldc.i4.s 10
IL_0002: stloc.0
IL_0003: ldc.i4.s 0A
IL_0005: stloc.1
IL_0006: ldloc.0
IL_0007: ldloc.1
IL_0008: div
IL_0009: stloc.2
IL_000A: ldloc.2
IL_000B: call System.Console.WriteLine
VBでの整数の割り算は、バックスラッシュが必要です。
関連
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み] C#でdoubleをintに変換する方法
-
[解決済み] 除算を強制的に浮動小数点にするにはどうしたらいいですか?除算は0に切り捨てられ続けますか?
-
[解決済み] 割り算で使う場合の「/」と「//」の違いは何ですか?
-
[解決済み] VB.NETで条件付き三項演算子はありますか?
-
[解決済み] 整数の割り算の結果を丸めるには?
-
[解決済み】i = 0のとき、なぜ(i += i++)は0になるのですか?
-
[解決済み】整数の割り算で、別の整数ではなく、浮動小数点が得られるのはなぜですか?
-
[解決済み] C#の整数の割り算は、なぜfloatではなく整数を返すのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プログラム実行中に1秒待つ
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。