0

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

4

2 回答 2

0

有许多方法试图将字符串解析为数字,例如Double.TryParse

于 2013-04-05T02:34:13.750 回答
0

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"));
        }
于 2013-04-05T02:35:09.607 回答