指数形式で表されたテキスト ファイルに 10 進数がいくつかあります。例: 144.2e-3. 値をfloatに格納したい。qt では、「number.toFloat()」メソッドを直接使用すると「0」が返されます。助けてください。
3692 次
3 に答える
3
toFloat() が機能するはずです。文字列に数字のみが含まれていることを確認してください。文字列に他の何かが含まれている場合、たとえば"144.2e-3 a"
、toFloat() は 0 を返します。文字列内の他の数値によっても変換が失敗することに注意してください。たとえば、QString("144.2e-3 100").toFloat()
0 が返されます。
数値文字列に空白を追加しても問題ありませんが、他の文字は重要です。
于 2010-09-16T21:02:01.893 に答える
1
value = 3.91e+01;
double doubleValue;
stringstream valuestream(value);
valuestream >> doubleValue;
文字列ストリームを使用すると、指数数を必要なデータ型に変換できます。
于 2011-02-22T13:15:52.777 に答える
0
を使用しQString::toDouble
ます。
例:
bool ok;
float f = static_cast< float>( QString( "1234.56e-02" ).toDouble( &ok));
于 2010-09-16T20:46:44.407 に答える