我正在尝试使用 Convert.ToDecimal 函数将双精度数转换为十进制数。问题是 .net 以某种方式根据原始双变量的大小选择省略十进制数字。
举个例子:
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) 并获得十进制数 2999247013,972682。
有什么想法吗?