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字符串格式,我怎么做?
谢谢
您需要提供格式化信息。不幸的是,您不能向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