3

我在以指数形式表示的文本文件中有一些十进制数字,例如:144.2e-3。我想将值存储在浮点数中。在 qt 中,当我直接使用“number.toFloat()”方法时,它返回“0”。请帮忙。

4

3 回答 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 回答