固定小数点データ型には多くの用途があるようです。.NET にないのはなぜですか?
注:固定小数点の目的とニーズに合わせて独自のクラス/構造体を作成できることを理解しています。それは私の質問ではありません。MS が固定小数点数値データ型を含めないことにした理由を知りたいです。
固定小数点データ型には多くの用途があるようです。.NET にないのはなぜですか?
注:固定小数点の目的とニーズに合わせて独自のクラス/構造体を作成できることを理解しています。それは私の質問ではありません。MS が固定小数点数値データ型を含めないことにした理由を知りたいです。
Decimal
(base-10 浮動小数点) で十分であると見なされました。
問題の 1 つは、おそらく次の質問に関係しています: どこで問題を解決しますか? .NET の型は、型以外の引数でパラメーター化できないため、FixedNum<18,6>
単純に不可能です。そして、、、、、、などを作成FixedNum1x0
したくありません。FixedNum1x1
FixedNum2x0
FixedNum2x1
FixedNum2x2
値だけでなく、固定小数点型をパラメーター化できる必要があります。これは、間違いを追跡することがほぼ不可能になるためです。
FixedNum f() { return new FixedNum(1, decimals: 2); }
FixedNum x = new FixedNum(1, decimals: 0);
...
x = f(); // precision of x increased.
したがって、ローカル変数ではないものから固定小数点値を取得するたびに、固定小数点値をチェックして制約する必要があります。decimal
固定のスケールまたは精度が必要な場合と同様です。
つまり、.NET 型システムの制限により、decimal
既に上記の FixedNum クラスの組み込み実装になっています。