sqrt 函数不计算正确的值

sqrt function doesn't evaluate correct value

本文关键字:计算 函数 sqrt      更新时间:2023-10-16

我是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: