名前空間
変種
操作

copysign, copysignf, copysignl

From cppreference.com
< c‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小演算
(C99)
(C99)
指数関数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
べき乗関数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角関数と双曲線関数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最も近い整数浮動小数点数
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮動小数点操作
(C99)(C99)
(C99)(C23)
(C99)
(C23)(C23)
copysign
(C99)
縮小演算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子および量子指数
Decimal再エンコーディング関数
総順序およびペイロード関数
分類
(C99)
(C99)
(C99)
(C23)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
マクロ定数
特殊な浮動小数点値
(C99)(C23)
引数と戻り値
エラーハンドリング
高速演算インジケータ
 
ヘッダー <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 も使用できます)。

[編集]

#include <math.h>
#include <stdio.h>
 
int main(void)
{
    printf("copysign(1.0,+2.0)      = %+.1f\n", copysign(1.0,+2.0));
    printf("copysign(1.0,-2.0)      = %+.1f\n", copysign(1.0,-2.0));
    printf("copysign(INFINITY,-2.0) = %f\n",    copysign(INFINITY,-2.0));
    printf("copysign(NAN,-2.0)      = %f\n",    copysign(NAN,-2.0));
}

実行結果の例

copysign(1.0,+2.0)      = +1.0
copysign(1.0,-2.0)      = -1.0
copysign(INFINITY,-2.0) = -inf
copysign(NAN,-2.0)      = -nan

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.12.11.1 The copysign functions (p: TBD)
  • 7.25 Type-generic math <tgmath.h> (p: TBD)
  • F.10.8.1 The copysign functions (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.12.11.1 The copysign functions (p: TBD)
  • 7.25 Type-generic math <tgmath.h> (p: TBD)
  • F.10.8.1 The copysign functions (p: TBD)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.12.11.1 The copysign functions (p: 255)
  • 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
  • F.10.8.1 The copysign functions (p: 529)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.12.11.1 The copysign functions (p: 236)
  • 7.22 型総称数学関数 <tgmath.h> (p: 335-337)
  • F.9.8.1 The copysign functions (p: 465)

[編集] 関連項目

(C99)(C99)
浮動小数点値の絶対値を計算する (|x|)
(関数) [編集]
与えられた数値が負数かチェックする
(関数マクロ) [編集]
English 日本語 中文(简体) 中文(繁體)