我只是想知道为什么以下代码
Convert.ToDouble("866666666.6666666666666666667")
给出输出:
866666666.66666663
和
Convert.ToString(Convert.ToDouble("866666666.6666666666666666667"))
给出输出:
866666666.666667
答案 0 :(得分:2)
这似乎是字符串格式问题
使用“R”和“G20”,我会看到你在手表中看到的相同
20是总数字数
{0:F20}不正确 - 它只是添加了一堆零
Double.ToString
Double d = Convert.ToDouble("866666666.6666666666666666667");
Debug.WriteLine(d);
Debug.WriteLine(d.ToString("G"));
Debug.WriteLine(d.ToString("G20"));
Debug.WriteLine(d.ToString("R"));
Debug.WriteLine(String.Format("{0:F20}", d));
string s = Convert.ToString(Convert.ToDouble("866666666.6666666666666666667"));
Debug.WriteLine(s);