考虑以下代码:
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# ×1