QTに浮かぶように指数形式の小数数を表す文字列を変換する方法は?
-
03-10-2019 - |
質問
テキストファイルには、指数形式で表されるテキストファイルにいくつかの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));
所属していません StackOverflow