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)));

QLocale::toDouble ()の qt のドキュメントを参照してください。

于 2016-02-01T14:12:45.717 に答える