如何将表示指数形式的十进制数字的字符串转换为QT中的float?
-
03-10-2019 - |
题
我在指数表格中表示的文本文件中有一些小数号,例如: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;
使用StringStream,您可以将指数编号转换为我们需要的数据类型。
采用 QString::toDouble
.
例子:
bool ok;
float f = static_cast< float>( QString( "1234.56e-02" ).toDouble( &ok));
不隶属于 StackOverflow