asin c语言中 返回值范围_asin()_C语言asin()详解:反正弦函数,求反正弦值
double asin(double x);
asin() 函數的功能是求反正弦值。
反正弦函數 asin() 和正弦函數 sin() 的功能正好相反:sin() 是已知一個角的弧度值 x,求該角的正弦值 y;而 asin() 是已知一個角的正弦值 y,求該角的弧度值 x。
參數
x
正弦值。x 的取值必須位于區間[-1, 1]中,如果 x 的值超出此區間,將會產生域錯誤(domain error)。
返回值
正常情況下(x 的取值位于區間[-1, 1]),函數返回正弦值為 x 的角的弧度數。
如果 x 的取值超出范圍,那么 asin() 將發生域錯誤,此時返回值為 NaN。
發生域錯誤時,asin() 還會設置 頭文件下的 errno 和 頭文件下的?FE_INVALID,我們也可以借此檢測出域錯誤。關于域錯誤的更多內容請猛擊《域錯誤(domain error)》。
實例
【實例1】求 0.5 的反正弦值(正常情況)。
/* asin example */
#include /* printf */
#include /* asin */
#define PI 3.14159265
int main ()
{
double param, result;
param = 0.5;
result = asin (param) * 180.0 / PI;
printf ("The arc sine of %f is %f degrees\n", param, result);
return 0;
}
運行結果:
The arc sine of 0.500000 is 30.000000 degrees
【實例2】求 2 的反正弦值(發生域錯誤)。
/* asin example */
#include /* printf */
#include /* asin */
#include /* errno */
#include /* FE_INVALID */
#define PI 3.14159265
int main()
{
double result = asin(2) * 180.0 / PI;
printf("result is :%f\n", result);
if (errno == EDOM) {
perror("errno == EDOM");
}
if (fetestexcept(FE_INVALID)) {
printf("FE_INVALID is set\n");
}
return 0;
}
在 VS2015 下的運行結果:
result is :-nan(ind)
errno == EDOM: Domain error
FE_INVALID is set
在 GCC 下的運行結果:
result is :nan
errno == EDOM: Numerical argument out of domain
FE_INVALID is set
在 Xcode 下的運行結果:
result is :nan
FE_INVALID is set
不同的編譯器對 NaN 的輸出不同,具體原因請猛擊《NaN(Not a Number),表示一個無效數字》。
Xcode 使用了較新的 C99 標準,當發生域錯誤時,不再設置 errno 的值了。
總結
以上是生活随笔為你收集整理的asin c语言中 返回值范围_asin()_C语言asin()详解:反正弦函数,求反正弦值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iis php win安装kangle_
- 下一篇: grads 相关系数_基于小波变换的多聚