在C中使用math.h的sqrt()和pow()函数

时间:2013-12-16 10:55:10

标签: c

sqrt()中的pow()库的math.hC函数未针对integer类型定义,但它们不会抛出任何错误但适用于integer参数,这是如何工作的?

3 个答案:

答案 0 :(得分:5)

当在期望浮点值的上下文中使用时,整数被隐式转换为浮点值。而这正是您的场景中发生的事情,其函数接受浮点参数。

所以,当你写:

#include <math.h>
....
int i;
double d = sqrt(i);

使用隐式类型转换规则将整数i转换为double,并将double传递给sqrt()

答案 1 :(得分:1)

从整数到浮点的隐式转换在C中工作正常,不是吗?

如果将一个整数作为参数传递给这些函数,它将自动转换为浮点类型。

答案 2 :(得分:1)

正如其他人指出的那样,整数将在需要时隐式转换为浮点数。但请确保包含math.h标题。