在C#中将长字符串转换为双精度

时间:2019-02-27 18:07:49

标签: c# casting

我有以下代码来转换非常长的数字字符串。

using System;

class MainClass {
  public static void Main (string[] args) {
    string longString = "1000000000000000000000000000001";
    double convertedString = Double.Parse(test);
    Console.WriteLine(test2);
  }
}

但是,convertedString以科学计数法输出:

1E+30

从字符串转换为double时,是否可以保留double的确切值?

1 个答案:

答案 0 :(得分:0)

输出的格式与变量本身的精度无关。您可以通过更改format string来获得所需的格式,例如

Console.WriteLine("{0:N}", test1);

关于变量的精度,您应该注意floating point numbers are not precise。而且您的电话号码大约十位数太长,无法放入long

您可能需要将该数字存储为自定义数据类型,或者,如果它只是一个标识符而不是实际上需要进行数学运算的数字,则只需将其存储为字符串即可。