0

指数形式(例:2,5E-02または4E + 06)の数値をQStringとして取得するルーチンがあります。値を出力すると、常に整数のみが取得され、1より小さい場合は、常に0が取得されます。ここで私が間違っていることを誰かが知っていますか?(cout行を使用して、QString :: number()がそれを台無しにしているかどうかをテストしたかっただけです)

コードスニペットは次のとおりです。

QStringList valPair;
value = atof(valPair[0].replace(",",".").toAscii());
value1 =atof(valPair[1].replace(",",".").toAscii());
strValue = "[" + QString::number(value) + ", " + QString::number(value1) + "]";
//cout<<value<<" "<<value1;

助けていただければ幸いです!

編集:それは変数宣言の問題でした...

double value, value1;
4

2 に答える 2

1

変換関数は、小数点記号としてコンマを使用するロケールをサポートしていません。2.4e4代わりに使用してください。

于 2012-11-13T06:57:57.253 に答える
1

なぜあなたはそのすべての仕事をしているのですか?QString::toDoubleおよびQString::number()を使用する場合、Qtにはすでに探しているものがあります。toDouble()を呼び出す前にロケールを手動で設定すると、何も置き換えずにコンマ10進表記を使用できます。

のような文字列テンプレートを作成してから、のバージョンをQString("[%1,%2]")使用することもできます。doubleQString::arg

于 2012-11-13T19:47:19.610 に答える