Convert.ToDecimal関数を使用してdoubleを10進数に変換しようとしています。問題は、どういうわけか.netが元のdouble変数のサイズに応じて10進数を省略することを選択することです。
次の例を見てください。
double d = 2999247013.972682;
decimal convDecimal = Convert.ToDecimal(d);
decimal realDecimal = 2999247013.972682M;
Console.WriteLine(d);
Console.WriteLine(convDecimal);
Console.WriteLine(realDecimal);
これにより、次の出力が生成されます。
2999247013,97268 // comments: (actual value 2999247013,972682)
2999247013,97268 // comments: (actual value 2999247013,97268)
2999247013,972682 // comments: (actual value 2999247013,972682)
('、'は現在のロケールの小数点です)
私が達成しようとしているのは、Convert.ToDecimal(d)を使用して、10進数の2999247013,972682を取得することです。
誰か考えはありますか?