n=(int)sqrt((double)i)中为什么要把i转变成double型?是不是math.h里的函数都要用double型?为什么呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 04:00:23
n=(int)sqrt((double)i)中为什么要把i转变成double型?是不是math.h里的函数都要用double型?为什么呢?

n=(int)sqrt((double)i)中为什么要把i转变成double型?是不是math.h里的函数都要用double型?为什么呢?
n=(int)sqrt((double)i)中为什么要把i转变成double型?是不是math.h里的函数都要用double型?为什么呢?

n=(int)sqrt((double)i)中为什么要把i转变成double型?是不是math.h里的函数都要用double型?为什么呢?
...我想说,这是为了实现严格的格式控制..
sqrt()函数,里面的形参是double型的,所以调用的时候,要强制转换成double型.
sqrt()函数都最后返回值是double型,而n是int型,所以要强制转换n=(int)sqrt((double)i);
你要知道到底要不要进行强制转换,你就要看这个函数的形参和返回值是什么类型.这样还能让你自己对这些函数有积累.
其实,int 转不转double.不同的编译器编译时,有的会警告,有的会报错,有的就直接通过.