回答編集履歴
2
修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
double は内部では 10 進数でないため、大きな数でなくても 10 進数への変換によって誤差が出ます。そのため誤差が大きな問題となる場合には decimal が使われます。
|
2
2
|
|
3
3
|
分数クラスは実装されている言語も多いと思いますが、約分・通分に時間がかかるために概数より重くなります。そのため用途が限られ、double の上位互換とはなりません。
|
4
|
-
例えば 1/2 + 2/3 を計算するのに乗算が二回必要で、結果を約分するのには因数分解も必要になります。これは何万回もループするような場合、大きな差になります。約分しなければ計算するたびに大きな数になってオーバーフローし
|
4
|
+
例えば 1/2 + 2/3 を計算するのに乗算が二回必要で、結果を約分するのには因数分解も必要になります。これは何万回もループするような場合、大きな差になります。約分しなければ計算するたびに大きな数になってすぐにオーバーフローして破綻します。
|
5
5
|
|
6
6
|
定数を展開せず定数のまま扱えるクラスというものは私は知りませんが、探せばあるかもしれません。ただしこれも用途が限られてくると思います。
|
1
修正
answer
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
double は内部では 10 進数でないため、大きな数でなくても 10 進数への変換によって誤差が出ます。そのため誤差が大きな問題となる場合には decimal が使われます。
|
2
2
|
|
3
|
-
分数クラスは実装されている言語も多いと思いますが、約分に時間がかかるために概数より重くなります。そのため用途が限られ、double の上位互換とはなりません。
|
3
|
+
分数クラスは実装されている言語も多いと思いますが、約分・通分に時間がかかるために概数より重くなります。そのため用途が限られ、double の上位互換とはなりません。
|
4
|
+
例えば 1/2 + 2/3 を計算するのに乗算が二回必要で、結果を約分するのには因数分解も必要になります。これは何万回もループするような場合、大きな差になります。約分しなければ計算するたびに大きな数になってオーバーフローしがちなので、すぐに破綻します。
|
4
5
|
|
5
6
|
定数を展開せず定数のまま扱えるクラスというものは私は知りませんが、探せばあるかもしれません。ただしこれも用途が限られてくると思います。
|