我对C#完全不熟悉,所以请耐心等待。
private static string GetFormattedValue(string dataType, dynamic cellValue)
{
string formattedCellValue = string.Empty;
if (cellValue == null)
cellValue = DBNull.Value;
if (dataType == "STRING")
{
formattedCellValue = string.Format("'{0}',", cellValue);
}
else if (dataType == "NUMBER")
{
if (string.IsNullOrEmpty(Convert.ToString(cellValue)))
cellValue = 0;
formattedCellValue = string.Format("'{0}',", cellValue.ToString("F17"));
}
else if (dataType == "DATE")
{
formattedCellValue = string.Format("'{0}',", cellValue);
}
else
{
formattedCellValue = string.Format("'{0}',", cellValue.ToString("F17"));
}
return formattedCellValue;
当dataType
为NUMBER且cellValue
为整数时,我收到错误消息:
“string.ToString(System.IFormatProvider)的最佳重载方法匹配有一些无效的参数”
cellValue
通常是非常小的数字,如果没有“F17”,将作为科学记数法返回(这会导致另一个错误),但也会导致上述错误的整数。
这不是我的代码,我只是运行它并且知道足够的步骤。任何想法如何确定是否可以读取cellValue
以确定是否整数?或任何其他更好的建议?
答案 0 :(得分:0)
有许多方法试图将字符串解析为数字,例如Double.TryParse
答案 1 :(得分:0)
F17引用双数据类型...不是字符串。
试试这个,让我知道:
else if (dataType == "NUMBER")
{
if (string.IsNullOrEmpty(Convert.ToString(cellValue)))
cellValue = 0;
formattedCellValue = string.Format("'{0}',", Convert.ToDouble(Convert.ToString(cellValue)).ToString("F17"));
}