小数点以下であるものとして以下検討3桁目以後の扱いはどうあるべきなのか?(乗除算すると小数点下3桁目以後が必ず発生する)整数部として必要な数値の範囲はどうなのか?(乗除算の途中で整数型範囲をあふれる可能性まで要考慮)その辺がクリアになっているのであれば、実値の100倍値を整数型に保持して演算する、ってのはあり。実際、俺たちが組み込み用途で「マイコン」を使う場合にはそうしている。その辺がクリアになっているのであれば、実値の100倍値を整数型に保持して演算する、ってのはあり。「あなたのプロジェクトにとってdoubleが最適」といっているのではありません。あなたの周囲ではdecimalのメリットがデメリットより大きいんでしょう。すべての人にとってdoubleがdecimalよりも「危ない」わけじゃないというのも分かりますよね?decimalのデメリットが許容できない場合もあるわけです。プロジェクトによっては、doubleの動作ではまるなどあり得なくて、効率の悪いdecimalを使うなど論外ということもあり得ます。そもそも目的上double使うのが当たり前で、そんなところにdecimalを使っては成果物の価値を大きく下げてしまう世界だってあるわけです。doubleの特徴をほとんど分かっていない人ばかりのプロジェクトでは、特に理由がなければdecimalという判断もあるでしょう。あと、>整数型>double>decimal>の順で計算速度は速いということなんですねどうも何でも唯一の正解を求めているようですが、必ずしも一概に言い切れるものではありません。22:50:00)確かに金額を扱わなくて、四捨五入が重要でない限りはdoubleで十分ってのは理解できますただ>doubleの特徴をほとんど分かっていない人ばかりのプロジェクトでは、特に理由がなければdecimalという判断もあるでしょう。ソフトによらず標準としてdecimalでも良いのではないかとおもったりしてますうーん、なんでそこにこだわるのか...一般論として、ソフトによらずこうだってことは言えないでしょう?decimalのデメリットが問題ないソフトしか作成しないのであればそれはひとつの判断として間違ってはいないでしょうし、いろんなソフトを作るところなら、プロジェクトによって変えないといけない可能性もあるでしょう。いうところがどうも唯一の正解を求めたがってるって風に感じるんですね。一般論としても違うということですか?100倍して整数型で計算てのは、掛け算や割り算では補正がいるってことです。計算途中に数学関数の計算がいるなら途中で部分的にdoubleを使わないといけないこともあるってことです。変換や補正を行うことに比べて、ハードでの浮動小数点演算は高速かもしれません。いらん処理が入らない前提であれば、多くのCPUではこの順になるのではないかとは思いますけどね。※浮動少数の演算速度が今現在どの程度かは全然把握してないので、実は整数と変わらないかもしれません。多数の浮動小数点ユニットを搭載していて、浮動少数の方がトータルでは速いCPUもあるかもしれません。23:36:19)極端な言い方をすれば、いわゆる業務系アプリ(金額を扱うことを前提とするアプリと定義します)を対象するならば、Decimalで十分です。科学技術系アプリ(実験的に得られる値を主に使うアプリと定義します)を対象とするならば、Doubleで十分です。コンピュータは元々軍事上の計算、特に、弾道計算を行うために開発されました。そのために使用する数値型としては浮動小数点数が最適だったわけで、その延長線上にあるのがSingleやDoubleです。その後、いろいろな用途に使われるようになり、それ以外の型も考案されました。実験/実測から得られた値にはもともとある程度の誤差があり、その誤差の範囲(つまり有効桁数の範囲)では正確さは最も重要ではありません。この発想の元にある数値型が浮動小数点数です。疑問に対してどなたか解説してくれるとうれしいかなぁ、なんて思ったり。だめって言われてしまうと非常に困ってしまうわけなんですが。-----あれ、リンクにならない。...なんでだろ?-----教えてもらったので実践(。