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是否可以读取以确定是否为整数?或者有更好的建议吗?

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

有许多方法尝试将字符串解析为数字,例如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"));
        }