0

如何用逗号读取浮点值123,45

我必须阅读格式类似的第三方 excel 文件,123,45我不能/不允许将它们重新格式化为123.45.

我现在正在使用这种方法:

    string GetCell(int row, int col)
    {
        if (Sheet != null)
        {
            try
            {
                string cellContent = Sheet[row][col].ToString(); // careful "ToString()" syntax!
                //Print("Excel.Get({0},{1}): {2}", row, col, cellContent);
                return cellContent;
            }
            catch (Exception e)
            {
                Print("Excel.Get("+row+","+col+") error: "+ e.Message);
                return null;
            }
        }
        else
        {
            Print("Excel.Get("+ row + ","+ col+") error: sheet is null");
            return null;
        }
    }

但字符串返回为12345.

提前致谢!

4

1 回答 1

3

您可以尝试指定一种文化

    string valueRead = "123,45";
    CultureInfo frenchCultureInfo = new CultureInfo("fr-FR");
    float valueParsed = float.Parse(valueRead, frenchCultureInfo);

编辑:根据您的评论,您可以使用 Excel 互操作指定文化。其他选择包括,将值读取为字符串并使用float.Parse,或更改当前线程的文化。

我使用法语是因为逗号是这种语言中的小数分隔符,但当然,任何其他语言都应该适合这种情况。

于 2020-01-21T06:34:03.307 回答