我是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 %d\n",a);
return 0;
}
但输出为Square root from 2 is 1719614413
。我真的不明白这一点。请解释一下。
答案 0 :(得分:4)
你正在使用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 %d\n",a);
这会打印一个字符串,并希望传递一个整数(%d)。你通过了一个双人,它是垃圾。您可以使用(%lf)表示双打。
答案 1 :(得分:1)
如果您仍想坚持我们的示例,请考虑使用%f而不是%d: