c#从泛型值到字符串的转换问题

本文关键字:转换 问题 字符串 泛型 | 更新日期: 2023-09-27 18:16:42

我正面临一个相当奇怪的问题,....

我有一个代码,读取XML并转换每个值,无论它是什么类型,例如,int, float, double或字符串它自己到字符串值,然后将其存储到字符串变量。

String column = System.Convert.ToString(values.GetValue(rowNum, colNum))

我的问题是,让我们说如果"值。GetValue(rowNum, colNum)"返回0.000003825,然后运行时,被转换并存储在"column"中的值是"3.825E-06",这是我并不真正想要的科学记数法,

我想"列"存储值0.000003825字符串格式,我怎么做?

谢谢

c#从泛型值到字符串的转换问题

您需要提供格式化信息。不幸的是,您不能向System.Convert.ToString()提供格式化信息。相反,您必须调用string.Format()object.ToString()

例如:

double value = 0.000003825;
string s1 = value.ToString("0.################");
Console.WriteLine(s1);
string s2 = string.Format("{0:0.################}", value);
Console.WriteLine(s2);

尝试ToString()将其转换为对象

好的,我现在已经修复了这个问题。

不管传递给obj的是什么类型的值

谢谢。

        Object obj = -0.00002357467;
        String value = obj.ToString();
        String type = obj.GetType().ToString();
        if (type.Equals("System.Double")&&value.Contains("E-"))
        {
            double doubleValue = (double)obj;
            value = doubleValue.ToString("0.############################"); //thanks @Matthew Watson
        }
        Console.WriteLine(value);   //prints -0.00002357467