小编Pau*_*idy的帖子

Convert.ToDouble(decimal) 意外损失精度

考虑以下代码:

double d = 1478110092.9070129;
decimal dc = 1478110092.9070129M;

Console.WriteLine(d.ToString("R"));
Console.WriteLine(dc);

Console.WriteLine(Convert.ToDouble(dc).ToString("R"));
Console.WriteLine(double.Parse(dc.ToString()).ToString("R"));
Run Code Online (Sandbox Code Playgroud)

这会生成以下内容:

1478110092.9070129
1478110092.9070129
1478110092.9070127
1478110092.9070129
Run Code Online (Sandbox Code Playgroud)

我的问题是 Convert.ToDouble 发生了什么?显然这个数字可以用双精度数来表示?

c#

2
推荐指数
1
解决办法
705
查看次数

标签 统计

c# ×1