2016-02-01 70 views
1

在我的csv文件中數值小數點是逗號。所以我可以在Excel中打開csv,Excel將不會格式化我的值。如何使用逗號將字符串轉換爲在QT中浮動?

當我在我自己的軟件中打開文件並將字符串轉換爲浮點數時,無法讀取值: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

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

見Qt的文檔可以肯定,那'DataFromRow.at(我)'不包含空格或其他分隔符。你可以嘗試下一步:'DataFromRow.at(i).trimmed()。toFloat()'。 –

回答

0

您設置流的語言環境,這並不大概工作,因爲我不認爲該區域被轉移到QStringList中對象DataFromRow的元素做。您必須將語言環境設置爲它們。但是,我寧願使用以下內容:QLocale::toDouble()

+0

謝謝!這就是我一直在尋找的東西。 當我保存文件時,我必須將語言環境設置爲流,所以這些值將以逗號顯示。 – Cat

相關問題