提问人:HarryP2023 提问时间:6/22/2023 更新时间:6/22/2023 访问量:50
将 QString::arg(double a) 与 std::numeric_limits<double>::infinity() 一起使用
Use QString::arg(double a) with std::numeric_limits<double>::infinity()
问:
我正在尝试使用Qt框架中的QString类将浮点值转换为其字符串表示形式。为此,我使用以下函数:
QString QString::arg(double a)
https://doc.qt.io/qt-5/qstring.html#arg-9
但是,我的代码可能会从以下静态函数中提供“无限”浮点值:
const double numericValue = std::numeric_limits<double>::infinity()
我想知道是否有很好的方法来处理这种情况。Qt文档中没有提到无限值大小写。Cpp 参考表明,此值是实现定义的,甚至可能无法转换为浮点类型!https://en.cppreference.com/w/cpp/types/numeric_limits/infinity
我当然可以用if块来处理这个问题:
QString asString;
if (numericValue == std::numeric_limits<double>::infinity())
{
asString = "Inf";
}
else
{
asString = QString().arg(numericValue);
}
但是有没有更好的方法呢?这甚至明智吗?
答: 暂无答案
评论
double