Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 加倍_Qt - Fatal编程技术网

Qt 加倍

Qt 加倍,qt,Qt,将“23”作为fhStr传递确定的计算结果始终为假,即转换后的值(d)从未分配给m_新值 这里有什么问题吗?使用交叉编译器在ARM板上运行。 您的字符串中可能有一些额外的信息。使用qDebug()查看发生了什么: void setNewValue(const QString& fhStr) { bool ok(false); double d = fhStr.toDouble(&ok); if (ok) { m_newValue = d; } } #

将“23”作为
fhStr
传递<代码>确定的计算结果始终为假,即转换后的值(
d
)从未分配给
m_新值

这里有什么问题吗?使用交叉编译器在ARM板上运行。

您的字符串中可能有一些额外的信息。使用qDebug()查看发生了什么:

void setNewValue(const QString& fhStr)
{
  bool ok(false);
  double d = fhStr.toDouble(&ok);
  if (ok) {
      m_newValue = d;
  }
}
#包括
// ...
void setNewValue(常量QString和fhStr)
{
布尔ok(假);
双d=fhStr.toDouble(&ok);
如果(确定){
m_newValue=d;
}

qDebug()您希望在代码中发生什么?从Qt POV来看,这一切都是正确的。对于您的测试用例,当通过“23”时,是toInt()而不是toDouble()也会将ok设置为false?@MrEricSir
ok
的计算结果为
true
,但仍然
m_值
未被更新。
#include <QDebug>
// ...
void setNewValue(const QString& fhStr)
{
  bool ok(false);
  double d = fhStr.toDouble(&ok);
  if (ok) {
      m_newValue = d;
  }
  qDebug() << fhStr << ok << m_newValue;
}