回答編集履歴

5

追記

2020/12/03 02:47

投稿

退会済みユーザー
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- 単純な有効桁数ならDecimalの方が上なので、精度が重要であれば、本当にDoubleを使用する必要があるかどうかはよく考える必要があります。
11
+ 単純な有効桁数ならDecimalの方が上なので、精度が重要であれば、本当にDoubleを使用する必要があるかどうかはよく考える必要があります。(浮動小数点型の誤差の問題もあります)
12
12
 
13
13
  まず扱う数値の必要な桁数を考慮し、必要があればDecimal.Round,Math.Roundメソッド等を使用して丸め処理を行ってください。
14
14
 

4

修正

2020/12/03 02:47

投稿

退会済みユーザー
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- で良いかと思います。ただ、aa, bbもDecimalにすれば、そもそもCDecの必要性はありませんので、可能な限り同じ型で計算した方がいいです。
7
+ で良いかと思います。ただ、aa, bbもDecimalにすれば、そもそもCDecの必要性はありませんので、可能な限り同じ型で計算した方がいいです。不必要な型変換は、最終的な精度に影響を与える場合もあります。
8
8
 
9
9
 
10
10
 

3

追記

2020/12/03 02:41

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,13 @@
1
+ 提示されている例だと、
2
+
3
+ > Result = CDec(aa) * CDec(BB)
4
+
5
+
6
+
7
+ で良いかと思います。ただ、aa, bbもDecimalにすれば、そもそもCDecの必要性はありませんので、可能な限り同じ型で計算した方がいいです。
8
+
9
+
10
+
1
11
  単純な有効桁数ならDecimalの方が上なので、精度が重要であれば、本当にDoubleを使用する必要があるかどうかはよく考える必要があります。
2
12
 
3
13
  まず扱う数値の必要な桁数を考慮し、必要があればDecimal.Round,Math.Roundメソッド等を使用して丸め処理を行ってください。

2

追記

2020/12/03 02:39

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,7 @@
1
1
  単純な有効桁数ならDecimalの方が上なので、精度が重要であれば、本当にDoubleを使用する必要があるかどうかはよく考える必要があります。
2
2
 
3
3
  まず扱う数値の必要な桁数を考慮し、必要があればDecimal.Round,Math.Roundメソッド等を使用して丸め処理を行ってください。
4
+
5
+
6
+
7
+ [DOBON.NET - 小数(浮動小数点数型)の計算が思った結果にならない理由と解決法](https://dobon.net/vb/dotnet/beginner/floatingpointerror.html)

1

修正

2020/12/03 02:31

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,3 @@
1
1
  単純な有効桁数ならDecimalの方が上なので、精度が重要であれば、本当にDoubleを使用する必要があるかどうかはよく考える必要があります。
2
2
 
3
- まず扱う数値の必要な桁数を考慮し、必要があればRoundメソッド等を使用して丸め処理を行ってください。
3
+ まず扱う数値の必要な桁数を考慮し、必要があればDecimal.Round,Math.Roundメソッド等を使用して丸め処理を行ってください。