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. 除算による除算
- 5. VB.NetでNULL合体演算子(8)
- 6. Regexでの除算と加算
- 7. コードでゼロ除算
- 8. ハスケルでゼロ除算
- 9. 0除算による除算
- 10. カーネルモジュールの除算
- 11. if文での除算
- 12. 時分秒での除算
- 13. 8086アセンブリシフト減算と除算
- 14. 整数の除算
- 15. のPython:除算エラー
- 16. SQLゼロ除算
- 17. スカラBigDecimal除算
- 18. 除算アンダーフロー
- 19. RuntimeWarning:除算
- 20. 整数除算
- 21. 0で除算するカウント
- 22. MIPS:整数の乗算と除算
- 23. Groovyの奇妙な除算演算子
- 24. 浮動小数点除算のニュートン・ラフソン除算?
- 25. ゼロ除算の手動除外
- 26. パーセントでの結果の除算
- 27. 豚スクリプトでのカウントの除算
- 28. VB.NETでは:=演算子は何ですか?
- 29. ゼロ除算警告
- 30. ANTLR:エクスプレッションエバリュエーター、除算、pow
あなたが持ってきた興味深いポイント。私はいつもVBの/と\の違いを理解していましたが、何らかの理由でこれがデータ型を指定する作業をC言語で行うことは決してありませんでした。私は戻って、私の数字の最後からすべてのDとFを取り除くことができると思います。 =) – AndyPerfect