【问题标题】:Writing float values to .csv file将浮点值写入 .csv 文件
【发布时间】:2014-05-21 19:57:33
【问题描述】:

我对 Excel 中的格式有点问题 我正在尝试将一些浮动值写入 .csv 文件并使用 Microsoft Excel 查看它。 例如,我在第一行写了 6.21 和 12.42。然后 excel 将 6 月 21 日和 12 月 46 日排除在外。或者它从 124.199 中得到 124199。

[...]
    fstream f;
    f.open("test.csv", ios::out);
    for(i=0; i<world1->GetTime(); i++)
    f << Values[i][0] << ';' << Values[i][1] << endl;
    f.close();
    return 0;

}

【问题讨论】:

  • 原始文本是怎么说的?
  • 6.21 我怀疑 Excel 期望 6,21 将其识别为浮点值。 floatdouble 值的呈现方式取决于您的实际 locale 设置。
  • @user3662357 为了澄清我一直怀疑的问题,您可以先尝试更改和修整.csv,直到 Excel 在导入时正确接受这些值。如果你有这个,你会检查你如何format the float and double values 他们重现你工作的.csv 模板。这是我现在能给出的最好建议,抱歉。

标签: c++ excel csv


【解决方案1】:

它与您的代码没有任何关系 - 您应该修改 Excel 设置以正确显示结果(好的,您可以修改代码,但通过 Excel 更简单) .

尝试在 Excel 中显示 .csv 文件时最常见的错误来源之一是,某些语言中的 Excel 使用逗号作为小数分隔符,而 C++ 使用点。根据您的 Excel 版本,您可以更改默认的小数分隔符: https://www.google.com/#q=excel+dot+as+decimal+separator

此外,您可以选择所有单元格并搜索并用逗号替换点 (ctrl + H)。另一种可能可行的方法是选择所有单元格,然后右键单击它们,选择“格式化单元格”选项并选择正确的单元格格式(如果程序仍然将您的值视为日期,则可能会有所帮助,即使您做了我所拥有的写在上面)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2021-03-31
    • 2014-09-30
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2019-10-31
    相关资源
    最近更新 更多