1

在我的 csv 文件值中,小数点是逗号。所以我可以在 Excel 中打开 csv,而 Excel 不会格式化我的值。

当我在自己的软件中打开文件并将字符串转换为浮点数时,无法读取值:bool ok 返回 false。

QTextStream stream(&file);
QLocale locale = QLocale();
qDebug() << locale.decimalPoint(); //returns ","
stream.setLocale(locale);

QString LineFromFile = stream.readLine();
QStringList DataFromRow = LineFromFile.split(";");

QList<float> values;
for (int i = 0; i < ValuesCnt; ++i){
   values.append(DataFromRow.at(i).toFloat());
   qDebug() << DataFromRow.at(i) << values.at(i);   //returns e.g.: "700,1" 0
}
4

1 回答 1

0

您为流设置了语言环境,这可能不起作用,因为我认为语言环境不会转移到 QStringList 对象 DataFromRow 的元素。您必须为它们设置语言环境。但是,我更喜欢使用以下内容:

for (int i = 0; i < ValuesCnt; ++i){
  values.append(locale.toFloat( DataFromRow.at(i)));

见qt的QLocale::toDouble ()的文档

于 2016-02-01T14:12:45.717 回答