copysign, copysignf, copysignl
提供: cppreference.com
ヘッダ <math.h> で定義
|
||
float copysignf( float x, float y ); |
(1) | (C99以上) |
double copysign( double x, double y ); |
(2) | (C99以上) |
long double copysignl( long double x, long double y ); |
(3) | (C99以上) |
ヘッダ <tgmath.h> で定義
|
||
#define copysign(x, y) |
(4) | (C99以上) |
1-3)
x
の絶対値と y
の符号を持つ浮動小数点値を合成します。4) 型総称マクロ。 任意の引数が long double の場合は
copysignl
が呼ばれます。 そうでなく、任意の引数が整数型または double 型の場合は copysign
が呼ばれます。 そうでなければ copysignf
が呼ばれます。目次 |
[編集] 引数
x, y | - | 浮動小数点値 |
[編集] 戻り値
エラーが発生しなければ、 x
の絶対値と y
の符号を持つ浮動小数点値が返されます。
x
が NaN の場合は y
の符号を持つ NaN が返されます。
y
が -0 の場合、処理系が算術演算で符号付きのゼロを一貫してサポートしていれば、結果は負のみになります。
[編集] エラー処理
この関数は math_errhandling で規定されているいかなるエラーの対象でもありません。
処理系が IEEE 浮動小数点算術 (IEC 60559) をサポートしている場合、
- 返された値は正確であり (FE_INEXACT は発生しません)、現在の丸めモードに依存しません。
[編集] ノート
copysign
は NaN 値の符号を操作する移植性のある唯一の方法です (NaN の符号を検査するためには signbit も使用することができます)。
[編集] 例
Run this code
出力例:
copysign(1.0,+2.0) = +1.0 copysign(1.0,-2.0) = -1.0 copysign(INFINITY,-2.0) = -inf copysign(NAN,-2.0) = -nan
[編集] 参考文献
- C11 standard (ISO/IEC 9899:2011):
- 7.12.11.1 The copysign functions (p: 255)
- 7.25 Type-generic math <tgmath.h> (p: 373-375)
- F.10.8.1 The copysign functions (p: 529)
- C99 standard (ISO/IEC 9899:1999):
- 7.12.11.1 The copysign functions (p: 236)
- 7.22 Type-generic math <tgmath.h> (p: 335-337)
- F.9.8.1 The copysign functions (p: 465)
[編集] 関連項目
(C99)(C99) |
浮動小数点値の絶対値 (|x|) を計算します (関数) |
(C99) |
指定された値が負かどうか調べます (関数マクロ) |
copysign の C++リファレンス
|