在我的csv文件中,decimalpoint是一个逗号。所以我可以在Excel中打开csv,Excel不会格式化我的值到目前为止。
当我在自己的软件中打开文件并将String转换为float时,无法读取值: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
}
答案 0 :(得分:0)
您设置了流的区域设置,这可能不起作用,因为我不认为区域设置被转移到QStringList对象DataFromRow的元素。您必须将语言环境设置为它们。但是,我更喜欢使用以下内容:
for (int i = 0; i < ValuesCnt; ++i){
values.append(locale.toFloat( DataFromRow.at(i)));
请参阅qt的QLocale::toDouble()
文档