C#字符串格式最佳重载方法匹配错误

时间:2013-04-05 02:26:19

标签: c# string formatting

我对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以确定是否整数?或任何其他更好的建议?

2 个答案:

答案 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"));
        }