12
A
答えて
16
番号を分割するには、2つの方法があります。速い道と遅い道。コンパイラの多くは、あなたを高速化するためにあなたを騙そうとします。 C#は、それらの一つであり、これを試してみてください。
using System;
class Program {
static void Main(string[] args) {
Console.WriteLine(1/2);
Console.ReadLine();
}
}
出力:0
をあなたはその結果に満足していますか?式の左辺と右辺が整数である場合は、技術的に正しい、文書化された動作です。それは速い整数部を行います。 (有名な)FDIV命令ではなく、プロセッサ上のIDIV命令。すべての中括弧言語がどのように機能するかにも完全に一致します。しかし、間違いなくSOの重要な情報源となっています。幸せな結果を得るために、あなたがこのような何かをしなければならないでしょう:
Console.WriteLine(1.0/2);
出力:0.5
左側が浮動小数点除算を強制的に、今の二重です。計算機に表示される結果の種類。 FDIVを呼び出すその他の方法は、右側を浮動小数点数にするか、オペランドの1つを明示的に(double)にキャストすることです。
VB.NETはそのように動作しません。/演算子は、常に浮動小数点の除算で、型に関係なくです。時にはあなたは本当にを実行します。は整数除算が必要です。それは\
の機能です。上記のため
5
/ Division
\ Integer Division
+0
いくつかの精緻化が順序であるかもしれません。 –
9
10/3 = 3.333
10 \ 3 = 3 (the remainder is ignored)
0
10/3 = 3.33333333333333, assigned to integer = 3
10 \ 3 = 3, assigned to integer = 3
20/3 = 6.66666666666667, assigned to integer = 7
20 \ 3 = 6, assigned to integer = 6
コード:
Dim a, b, c, d As Integer
a = 10/3
b = 10 \ 3
c = 20/3
d = 20 \ 3
Debug.WriteLine("10/3 = " & 10/3 & ", assigned to integer = " & a)
Debug.WriteLine("10 \ 3 = " & 10 \ 3 & ", assigned to integer = " & b)
Debug.WriteLine("20/3 = " & 20/3 & ", assigned to integer = " & c)
Debug.WriteLine("20 \ 3 = " & 20 \ 3 & ", assigned to integer = " & d)
関連する問題
- 1. vb.netの精度で除算
- 2. ゼロ除算C++での除算
- 3. VB.NetのUIntから減算
- 4. VB.NetでNULL合体演算子(8)
- 5. vb.netで年を加算する
- 6. 除算による除算
- 7. ゼロで除算
- 8. vb.net算術演算でオーバーフローエラーが発生しました
- 9. なぜゼロ除算で除算しないのですか?
- 10. Regexでの除算と加算
- 11. tryブロックの算術問題VB.NET
- 12. Cの乗算と除算
- 13. CでのBigIntegerの除算
- 14. ScalaFiddle 0で除算
- 15. ハスケルでゼロ除算
- 16. コードでゼロ除算
- 17. VB.NETで印刷した後に、VB.NETの画像を削除できない(KeepAutomation)
- 18. 0除算による除算
- 19. カーネルモジュールの除算
- 20. 負の数で除算
- 21. if文での除算
- 22. 時分秒での除算
- 23. 8086アセンブリシフト減算と除算
- 24. C掛け算と除算
- 25. vb.netのDevComponentを取り除く方法
- 26. のPython:除算エラー
- 27. ダブル値の除算
- 28. 整数の除算
- 29. SQL Serverの除算
- 30. VB.NETでは:=演算子は何ですか?
あなたが持ってきた興味深いポイント。私はいつもVBの/と\の違いを理解していましたが、何らかの理由でこれがデータ型を指定する作業をC言語で行うことは決してありませんでした。私は戻って、私の数字の最後からすべてのDとFを取り除くことができると思います。 =) – AndyPerfect