回答編集履歴

5

修正

2021/04/21 07:27

投稿

退会済みユーザー
test CHANGED
@@ -78,4 +78,6 @@
78
78
 
79
79
  366461620334848584
80
80
 
81
+ 366461620334848584
82
+
81
83
  ```

4

リンク追加

2021/04/21 07:27

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  VB.NETの整数除算は \ です。
2
2
 
3
- / で除算した場合はオペランドの型によって結果の型が違いますが、今回の場合はDoubleになります。Double型の有効桁数は15桁なので、それをLongを戻した際に誤差が発生します。
3
+ / で除算した場合はオペランドのデータ型によって結果のデータ型が違いますが、今回の場合はDoubleになります。([/ 演算子](https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/operators/floating-point-division-operator)の説明を参照してください。) Double型の有効桁数は15桁なので、それをLongを戻した際に誤差が発生します。
4
4
 
5
5
 
6
6
 

3

修正

2021/04/21 07:15

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  VB.NETの整数除算は \ です。
2
2
 
3
- / で除算した場合はDouble型となりDouble型の有効桁数は15桁なので、それをLongを戻した際に誤差が発生します。
3
+ / で除算した場合はオペランドの型によって結果の型が違いますが、今回の場合はDoubleなります。Double型の有効桁数は15桁なので、それをLongを戻した際に誤差が発生します。
4
4
 
5
5
 
6
6
 

2

追記

2021/04/21 07:12

投稿

退会済みユーザー
test CHANGED
@@ -5,3 +5,77 @@
5
5
 
6
6
 
7
7
  [Visual Basic における算術演算子](https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/operators-and-expressions/arithmetic-operators)
8
+
9
+
10
+
11
+ 提示されたサンプルコードの /= している箇所を \= にして実行すると、結果は下記のようになります。
12
+
13
+ ```
14
+
15
+ i=199
16
+
17
+ j=1
18
+
19
+ 199
20
+
21
+ i=198
22
+
23
+ j=2
24
+
25
+ 19701
26
+
27
+ i=197
28
+
29
+ j=3
30
+
31
+ 1293699
32
+
33
+ i=196
34
+
35
+ j=4
36
+
37
+ 63391251
38
+
39
+ i=195
40
+
41
+ j=5
42
+
43
+ 2472258789
44
+
45
+ i=194
46
+
47
+ j=6
48
+
49
+ 79936367511
50
+
51
+ i=193
52
+
53
+ j=7
54
+
55
+ 2203959847089
56
+
57
+ i=192
58
+
59
+ j=8
60
+
61
+ 52895036330136
62
+
63
+ i=191
64
+
65
+ j=9
66
+
67
+ 1122550215450664
68
+
69
+ i=190
70
+
71
+ j=10
72
+
73
+ 21328454093562616
74
+
75
+ i=189
76
+
77
+ j=11
78
+
79
+ 366461620334848584
80
+
81
+ ```

1

修正

2021/04/21 07:08

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  VB.NETの整数除算は \ です。
2
2
 
3
- / で除算した場合はDouble型となり、Double型の有効桁数は15桁ので誤差が発生します。
3
+ / で除算した場合はDouble型となり、Double型の有効桁数は15桁なので、それをLongを戻した際に誤差が発生します。
4
4
 
5
5
 
6
6