c#字符串格式最佳重载方法匹配错误
本文关键字:错误 方法 重载 字符串 格式 最佳 | 更新日期: 2023-09-27 18:07:24
我对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
是否可以读取以确定是否为整数?或者有更好的建议吗?
有许多方法尝试将字符串解析为数字,例如Double。TryParse
F17引用Double数据类型…不是字符串
试试这个,让我知道:
else if (dataType == "NUMBER")
{
if (string.IsNullOrEmpty(Convert.ToString(cellValue)))
cellValue = 0;
formattedCellValue = string.Format("'{0}',", Convert.ToDouble(Convert.ToString(cellValue)).ToString("F17"));
}