float自动认为是double

img


此问题是把float认为是都double了吗,所以函数调用时ambiguous,如何解决呢

abs是系统中自带的求绝对值函数,它的参数是int &,float &,double &等引用类型。二义性是因为float参数和float &参数造成的,int ,float,double不会产生二义性
你换个函数名称

给你找了一篇非常好的博客,你可以看看是否有帮助,链接:float与double的区别及小数点控制问题
同时,你还可以查看手册:c++-double_t 中的内容