Namespaces
Variants

copysign, copysignf, copysignl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
(C23) (C23)
copysign
(C99)
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
헤더 파일에 정의됨 <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인 경우, 구현체가 산술 연산에서 부호 있는 0을 일관되게 지원할 때에만 결과가 음수가 됩니다.

오류 처리

이 함수는 math_errhandling 에 지정된 어떤 오류에도 적용되지 않습니다.

구현이 IEEE 부동 소수점 연산(IEC 60559)을 지원하는 경우,

참고 사항

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 copysign 함수들 (p: TBD)
  • 7.25 타입-제네릭 수학 <tgmath.h> (p: TBD)
  • F.10.8.1 copysign 함수들 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.12.11.1 copysign 함수들 (p: TBD)
  • 7.25 타입-제네릭 수학 <tgmath.h> (p: TBD)
  • F.10.8.1 copysign 함수들 (p: TBD)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.12.11.1 copysign 함수들 (p: 255)
  • 7.25 타입-제네릭 수학 <tgmath.h> (p: 373-375)
  • F.10.8.1 copysign 함수들 (p: 529)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.12.11.1 copysign 함수들 (p: 236)
  • 7.22 일반 타입 수학 <tgmath.h> (p: 335-337)
  • F.9.8.1 copysign 함수들 (p: 465)

참고 항목

(C99) (C99)
부동 소수점 값의 절댓값을 계산합니다 ( |x| )
(함수)
(C99)
주어진 숫자가 음수인지 확인합니다
(함수 매크로)
C++ documentation for copysign