1.123456789123456789123456789E-28のような値を生成する古いVBAアプリケーションがあります。私がC#で同等のデータ型を見つけようとしたとき、私はこの記事をSO Difference between decimal, float and double in .NET?に見つけました。この投稿が示唆しているとおり、10進データ型はC#で最大のサイズです。だから私は10進データ型を使用しましたが、VBAが指数関数形式で表現する大きな値を表現するには小数点の数が限られているようです。だから私は再びgoogledとこの記事を見つけたhttps://msdn.microsoft.com/en-us/library/ae55hdtk.aspx。この記事で述べたように、VBA指数形式のC#データ型
非整数値はMMMに、mmmEeeeように表すことができる 仮数(有効桁)とEEE指数(電源10の )です。非整数型の正の最大値は、小数の場合は 7.9228162514264337593543950335E + 28、単精度の場合は3.4028235E + 38、倍精度の場合は1.79769313486231570E + 308です。
これは、ダブルデータ型が最大値の範囲を持つことを意味します。だから私は10進数と2倍の間で混乱しています。それは0.0000000000000000000000000001にDCL値が変化しながら1.123456789123456789123456789E-28であるようにDBL値を出力し
double dbl = 1.123456789123456789123456789E-28;
decimal dcl = 1.123456789123456789123456789E-28M;
MessageBox.Show(dbl.ToString());
MessageBox.Show(dcl.ToString());
以下のよう
そしてIはコードで少し実験を行いました。 誰かがここで何が起こっているのか説明できますか?同じ精度のVBAのような大きな指数値を表すために、C#の同等のデータ型は何ですか?
最初の記事をさらに読むと、その違いや使い方を理解できます。私はあなたが投稿した最初のリンクを誤解しているかもしれないと思います。 – Hank