11

使用时出现上述错误

double x = log10(100);

我在同一个项目中的其他课程中使用过它,它没有显示此错误。

我如何解决它?

非常感谢

钦坦

4

1 回答 1

20

该错误通常表明该函数存在多个重载,并且对于该特定调用log10,它们中没有一个比其他的更好。例如,重载可以采用floatand double:100int可以转换为其中之一的,并且转换是等效的,因此编译器无法确定最佳选项是什么。

您可以显式强制转换为重载之一:

double x = log10( 100. );    // 100. is a double
float  y = log10( 100f );    // 100f is a float
int i = 100;
double z = log10( static_cast<double>(i) ); // or cast
于 2012-10-22T12:26:15.323 回答