sqrt 函数不计算正确的值
sqrt function doesn't evaluate correct value
我是C++
的新手,正在尝试计算平方根。我写了以下内容:
#include <math.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
double a;
a=sqrt(2.0);
printf("Square root from 2 is %dn",a);
return 0;
}
但输出是Square root from 2 is 1719614413
。我真的不明白。请解释一下。
你使用的是C(它也大多编译为C++),而不是C++,你这样做是错误的。你可以学习C,也可以使用C++,在那里更难犯这些错误:
#include <cmath>
#include <iostream>
int main()
{
double a = std::sqrt(2.0);
std::cout << "Square root from 2 is " << a << std::endl;
return 0;
}
附加说明:
printf("Square root from 2 is %dn",a);
这将打印一个字符串,并期望传递一个整数(%d)。你通过了一个替身,结果却成了垃圾。你可以使用(%lf)进行双打。
如果您仍然想坚持我们的示例,请考虑使用%f而不是%d:
相关文章:
- 当 A 在 for 循环中调用函数 B 时,如何计算函数 A 的空间复杂度?
- 如何计算函数的时间复杂度?
- 有没有办法计算函数内arry的长度而不是作为参数传入?
- 如何计算函数的搜索复杂度
- 使用引用参数计算函数
- 递归计算函数f = n!/(c^n)的值
- 为什么这个C++字符串长度计算函数比另一个更快
- 用递归计算函数f(n)
- C++平均计算函数返回0
- 有没有比生成/累积更快的方法来计算函数结果的平均值
- 如何计算函数的时间
- 由于标识符未知,LLDB 无法计算函数
- 从 C++11 中的列表中选择并计算函数
- 计算后缀表达式.pop() 返回不正确的值来计算函数
- 在计算函数返回值之前或之后是否销毁了局部变量
- 计算函数指针的类型
- 计算函数中的模给出了与直接使用%运算符不同的答案
- 提升:以秒/毫/微米/纳米为单位计算函数的运行时间
- 行列式计算函数的优化
- 如何在c++中计算函数的执行时间和cpu消耗