acos, acosf
Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

acos, acosf

Calculate the arccosine.

double acos( 
   double x 
float acos(
   float x 
);   // C++ only
long double acos(
   long double x
);   // C++ only
float acosf(
   float x 


Value between –1 and 1 whose arccosine is to be calculated.

The acos function returns the arccosine of x in the range 0 to π radians.

If x is less than –1 or greater than 1, acos returns an indefinite by default.


SEH Exception

Matherr Exception

± ∞









C++ allows overloading, so you can call overloads of acos. In a C program, acos always takes and returns a double.


Required header

Optional headers

acos, acosf



This program prompts for a value in the range -1 to 1. Input values outside this range will produce _DOMAIN error messages. If a valid value is entered, the program prints the arcsine and the arccosine of that value.

// crt_asincos.c
// arguments: 0

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main( int ac, char* av[] )
    double  x,
    errno_t err; 

    // argument checking
    if (ac != 2)
        fprintf_s( stderr, "Usage: %s <number between -1 and 1>\n",
        return 1;

    // Convert argument into a double value
    if ((err = sscanf_s( av[1], "%lf", &x )) != 1)
        fprintf_s( stderr, "Error converting argument into ",
                   "double value.\n");
        return 1;

    // Arcsine of X
    y = asin( x );
    printf_s( "Arcsine of %f = %f\n", x, y );

    // Arccosine of X
    y = acos( x );
    printf_s( "Arccosine of %f = %f\n", x, y );
Arcsine of 0.000000 = 0.000000 Arccosine of 0.000000 = 1.570796
© 2015 Microsoft