質問

テキストファイルには、指数形式で表されるテキストファイルにいくつかの10進数があります。例:144.2e-3。値をフロートに保存したいです。 QTでは、「number.tofloat()」メソッドを直接使用すると「0」を返します。助けてください。

役に立ちましたか?

解決

tofloat()は機能するはずです。文字列に番号のみが含まれていることを確認してください。文字列に何かが含まれている場合、たとえば "144.2e-3 a", 、次に、tofloat()が0を返します。たとえば、文字列内の他の数値も変換が失敗することに注意してください。 QString("144.2e-3 100").toFloat() 0を返します。

数字の文字列の追加の白文字は重要ではありませんが、他の文字は重要ではありません。

他のヒント

value = 3.91e+01;
double doubleValue;
stringstream valuestream(value);
valuestream >> doubleValue;

文字列を使用すると、指数数を必要なデータ型に変換できます。

使用する QString::toDouble.

例:

bool ok;
float f = static_cast< float>( QString( "1234.56e-02" ).toDouble( &ok));
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top