为什么我应该得到双打时得到 NaN?
Why am I getting NaN when I should be getting a double?
我的问题在first_x
和second_x
的定义中。当我调用quad_eq
函数时,我根据下面的代码得到一个 -nan(ind( 返回。如果我将.pushback()
方法参数更改为文本整数,则会返回该整数而不是 NaN。这让我相信问题出在我对first_x
和second_x
的计算/定义上。也许有一些技巧可以C++我没有看到或理解。任何人都可以看到我的问题是什么吗?(如果这有帮助,我正在研究Bjarne Stroustrup的C++原则和实践使用C++,他给了我std_lib_facilities.h文件来使用,因为我还不明白标题(
vector<double>quad_eq(double a, double b, double c) {
vector<double>answers;
double first_x = (-b + sqrt((b * 2) - (4 * a * c))) / 2 * a;
double second_x = (-b - sqrt((b * 2) - (4 * a * c))) / 2 * a;
answers.push_back(first_x);
answers.push_back(second_x);
return answers;
}
根据输入,你取负数的平方根,所以你得到 NaN(实际上是双精度(,任何其他操作都会传播它。
旁注:您显示的代码不会按原样编译,因为它缺少#include <vector>
和using namespace std;
。后者通常也不受欢迎。
相关文章:
- 我应该使用什么来代替void作为变体中的替代类型之一
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- 我应该删除矢量<short>吗?
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 我应该在锁定TBitmap画布后解锁它吗
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 我应该避免多重实现继承吗
- 为了方便起见,我应该避免公开私有字段变量吗
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 违反const正确性:我应该现实地期待什么问题
- 我应该如何表示我拥有的连续元素序列?
- 我应该将除 .cpp 以外的其他文件添加到 git 中吗?
- 为什么我应该得到双打时得到 NaN?
- c++:没有得到分段错误时,我应该
- 我应该在哪里得到b2.exe和bjam.exe其他人都用来构建boost
- 我得到矛盾的答案,我应该如何处理我的代码?