相关疑难解决方法(0)

C#加倍到十进制精度损失

我有一个双"138630.78380386264",我想将它转换为十进制,但是当我这样做时,我通过铸造或使用Convert.ToDecimal(),我失去精度.

这是怎么回事?decimal和double都可以保存这个数字:

在此输入图像描述

double doub = double.Parse("138630.78380386264");
decimal dec = decimal.Parse("138630.78380386264");
string decs = dec.ToString("F17");
string doubse =DoubleConverter.ToExactString(doub);
string doubs = doub.ToString("F17");

decimal decC = (decimal) doub;
string doudeccs = decC.ToString("F17");
decimal decConv = Convert.ToDecimal(doub);
string doudecs = decConv.ToString("F17");
Run Code Online (Sandbox Code Playgroud)

另外:如何使用ToString()on double打印出与调试器显示的相同的结果?例如138630.78380386264

c# precision double decimal

29
推荐指数
2
解决办法
3万
查看次数

标签 统计

c# ×1

decimal ×1

double ×1

precision ×1