Manipulación de coma flotante de C++

Al igual que los números enteros, C++ 11 introdujo algunas funciones básicas incorporadas para manejar cálculos matemáticos simples de números de coma flotante necesarios para la programación diaria y la programación competitiva. Estas funciones pertenecen al archivo de cabecera <cmath> . En este artículo se describen algunas de las funciones introducidas.

1. fmod() : esta función se usa para devolver el resto (módulo) de 2 números de punto flotante mencionados en sus argumentos. El cociente calculado se trunca .

Sintaxis:

fmod(a,b);  // a, b are 2 floating point numbers

Ejemplo:

C++

// C++ code to demonstrate working of fmod()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
  
    double a, b, c;
  
    // Initializing values
    a = 9.6;
    b = 3.5;
  
    // using fmod() to compute the remainder
    // computes 2 as quotient (truncated)
    // returns 2.6 as remainder
    c = fmod(a, b);
  
    cout << "The remainder computed using fmod() is : "
         << c;
    cout << endl;
}
Producción

The remainder computed using fmod() is : 2.6

2. resto() : esta función también se usa para devolver el resto (módulo) de 2 números de punto flotante mencionados en sus argumentos. El cociente calculado se redondea .

Sintaxis:

 remainder(a,b);  // a, b are 2 floating point numbers

Ejemplo:

C++

// C++ code to demonstrate working of remainder()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
  
    double a, b, c;
  
    // Initializing values
    a = 9.6;
    b = 3.5;
  
    // using remainder() to compute the remainder
    // computes 3 as quotient (rounded)
    // returns -0.9 as remainder
    c = remainder(a, b);
  
    cout << "The remainder computed using remainder() is : "
         << c;
    cout << endl;
}
Producción

The remainder computed using remainder() is : -0.9

3. remquo() : esta función devuelve el resto y también almacena el resto en la referencia de variable pasada como argumento. Esta función toma 3 argumentos, numerador, denominador y referencia de la variable donde se tiene que almacenar el cociente.

Sintaxis:

remquo(a,b,&quo); // a, b and c are three arguments

Ejemplo:

CPP

// C++ code to demonstrate working of remquo()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
  
    double a, b, f;
    int g;
  
    // Initializing values
    a = 9.6;
    b = 3.5;
  
    // using remquo() to return quotient and remainder
    // quotient stored in g
    f = remquo(a, b, &g);
  
    cout << "The remainder part of " << a << "/" << b
         << " is : " << f;
    cout << endl;
    cout << "The quotient part of " << a << "/" << b
         << " is : " << g;
    cout << endl;
}
Producción

The remainder part of 9.6/3.5 is : -0.9
The quotient part of 9.6/3.5 is : 3

4. copysign() : esta función devuelve un número con la magnitud del primer argumento y el signo del segundo argumento .

Sintaxis:

copysign(a, b);  // a and b are arguments

Ejemplo:

C++

// C++ code to demonstrate working of copysign()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    double a, b;
  
    // Initializing values
    a = 9.6;
    b = -3.5;
  
    // using copysign()
    cout << "The value returned after copysigning is : ";
    cout << copysign(a, b);
  
    cout << endl;
}
Producción

The value returned after copysigning is : -9.6

5. nextafter() : esta función calcula el siguiente valor representable del primer argumento en la dirección del segundo argumento .

Sintaxis:

nextafter(a, b);  // a and b are arguments

Ejemplo:

CPP

// C++ code to demonstrate working of nextafter()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    double a, b;
  
    // Initializing values
  
    a = -3.5;
    b = 0.0;
  
    // using nextafter() to compute next approximated value
    cout << "The next value approximated is : ";
    cout << nextafter(a, b);
}
Producción

The next value approximated is : -3.5

6. fmin() : Devuelve el menor de dos argumentos.

Sintaxis:

 fmin(a, b);  // a and b are arguments

Ejemplo:

C++

// C++ code to demonstrate working of fmin()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    double a, b;
  
    // initializing values
    a = 2.5;
    b = 2.0;
  
    // using fmin() to compute smallest of two numbers
    cout << "The smallest of 2 numbers is : ";
    cout << fmin(a, b);
  
    cout << endl;
}
Producción

The smallest of 2 numbers is : 2

7. fmax() : Devuelve el mayor de dos argumentos.

Sintaxis:

 fmax(a, b);  // a and b are arguments

Ejemplo:

C++

// C++ code to demonstrate working of fmax()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    double a, b;
  
    // initializing values
    a = 2.5;
    b = 2.0;
  
    // using fmax() to compute maximum of two numbers
    cout << "The largest of 2 numbers is : ";
    cout << fmax(a, b);
  
    cout << endl;
}
Producción

The largest of 2 numbers is : 2.5

8. fdim() : Devuelve la diferencia positiva de los números pasados ​​como argumentos.

Sintaxis:

fdim(a, b);  // a and b are arguments

Ejemplo:

C++

// C++ code to demonstrate working of fdim()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    double a, b;
  
    // initializing values
    a = 2.5;
    b = 2.0;
  
    // using fdim() to compute positive difference of two
    // numbers
    cout << "The positive difference of 2 numbers is : ";
    cout << fdim(a, b);
  
    cout << endl;
}
Producción

The positive difference of 2 numbers is : 0.5

9. fma() : esta función toma 3 argumentos y devuelve el valor “ x*y+z ” multiplicado y sumado después del cálculo.

Sintaxis:

fma(a, b, c);  // a, b and c are arguments

Ejemplo:

CPP

// C++ code to demonstrate working of fma()
#include <cmath>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    double a, b, c;
  
    // initializing values
    a = 2.5;
    b = 2.0;
    c = 2.5;
  
    // using fma() to compute multiply-add
    cout << "The multiply-add of 3 numbers is : ";
    cout << fma(a, b, c);
}
Producción

The multiply-add of 3 numbers is : 7.5

Este artículo es una contribución de Manjeet Singh (S. Nandini) . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *