C言語,copysign()関数で数値の符号をコピーする

スポンサーリンク

鍛錬 697

C言語,copysign()関数で数値の符号をコピーする

数値の符号を他の数値にコピーするには、copysign()関数を使用します。
 
以下は、copysign()関数についてです。

#include <math.h>

double copysign(double x, double y);
 

引数

以下は、上記の引数についてです。

引数 意味
double x 符号をコピーされる側の数値
double y 符号をコピーする側の数値

戻り値

以下は、戻り値についてです。

戻り値
double x の絶対値に等しく、y の符号に等しい数値
スポンサーリンク

プログラム

以下は、数値の符号を他の数値にコピーするプログラム、get_copysign.c です。

今回は、1.23 と -1.23 について、符号をコピーすることにより符号を変更しています。

// include
#include <stdio.h>
#include <math.h>

// main
int main(void)
{
	double num;
	double sign;
	double result;
	
	// 符号をコピー
	num = 1.23;
	sign = -1.0;
	result = copysign(num, sign);
	printf("copysign(%.3lf, %.3lf) --> %lf\n", num, sign, result);
	
	num = -1.23;
	sign = 1.0;
	result = copysign(num, sign);
	printf("copysign(%.3lf, %.3lf) --> %lf\n", num, sign, result);
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム get_copysign.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra get_copysign.c -lm -o get_copysign
***@ubuntu:~/***/test/c$ ./get_copysign
copysign(1.230, -1.000) --> -1.230000
copysign(-1.230, 1.000) --> 1.230000

 
上記に示した通り、数値の符号をコピーすることができました。

タイトルとURLをコピーしました