作业帮 > 综合 > 作业

负实数开方”和“负整数开方”为什么会有不同的处理结果?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 03:48:31
负实数开方”和“负整数开方”为什么会有不同的处理结果?
在math库中,sqrt函数默认参数为double,而且貌似只有两个重载函数,一个是对float型参数的重载,一个是对long double型参数的重载,因此当参数类型为int时,编译器必然会进行一个强制类型转换,但是,转为double?float?还是long double?编译器显然无法确定,因此当进行负整数(其实是所有整数)开方时,会得到“error C2668:“sqrt”:对重载函数的调用不明确”这一错误.而对于负实数开方,sqrt函数是有返回值的,那就是传说中的NaN.
樊大神求采纳.