gpt4 book ai didi

C++ pow() - 浮点类型不匹配

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:53 24 4
gpt4 key购买 nike

我用C++做了一个简单的代码

#include<math.h>

void main()
{
float a,x;

cout<<"Enter value of a"<<endl;
cin>>a;

x = pow(a,0.5);
cout<<x;
}

但它给我错误:

Error for Pow() use with float in C++

当我按 F12 并转到 pow() 的定义时,找到了这 6 个重载:

math.h pow() overloads

正如我们所见,它显然有一个重载 (double, double) 和一个 (float, float ),那么为什么当我将 a 声明为 float 时它会报错,而当我将其数据类型更改为 double 时它又能正常工作>?

最佳答案

这里的问题是文字 0.5double , 所以你调用 pow具有一组不明确匹配重载的参数,并且不能对其应用类型转换以明确匹配现有重载。您应该使用浮点文字 0.5f相反。

x = pow(a, 0.5f);

另请注意,您需要 #include <iostream>对于 cout , cinendl ,并且您必须通过全名( std::coutstd::cinstd::endl )引用它们,或者使用 using 声明

using std::cout;
using std::cin;
using std::endl;

最后,void main()不是 main 的有效签名之一功能。它必须返回 int,所以

int main()

auto main()->int

关于C++ pow() - 浮点类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com