En C++, modf() es una función predefinida utilizada para cálculos matemáticos. math.h es el archivo de encabezado requerido para varias funciones matemáticas. Todas las funciones disponibles en esta biblioteca toman double como argumento y devuelven double como resultado.
La función modf() divide el argumento dado en dos partes, una es un número entero y la otra es una fracción. La parte entera se almacena en la dirección de memoria señalada por el puntero que se pasa como segundo argumento en la función y la función devuelve la parte fraccionaria.
Sintaxis:
double modf(k, &p)
- k: Es un valor que se va a dividir en dos partes.
- p: es un puntero que apunta a la parte entera de k después de romperse.
- La función devuelve el valor fraccionario de k .
- No hay ningún error en particular planteado por esta función.
Parámetros:
Devolver:
Error:
- Si se pasa algo diferente a un número flotante, doble o entero, devuelve un error de tipo.
// CPP program to demonstrate
// exception of this function
#include <bits/stdc++.h>
using
namespace
std;
int
main()
{
// Take any value
double
p, fraction;
string k =
"5.06"
;
// Breaks k into two parts
fraction =
modf
(k, &p);
cout <<
"Integer Value = "
<< p
<< endl <<
"Fraction Value = "
<< fraction << endl;
return
0;
}
Producción:
prog.cpp:13:23: error: no matching function for call to 'modf(std::__cxx11::string&, double*)' fraction = modf(k, &p); ..... /usr/include/c++/5/cmath:395:3: note: candidate: float std::modf(float, float*) modf(float __x, float* __iptr)
Excepciones asociadas a esta función:
Nota: k y p deben ser del mismo tipo de datos.
Ejemplos:
- Pasando el valor doble (flotante) como argumento:
// CPP program to demonstrate
// modf() function
#include <bits/stdc++.h>
using
namespace
std;
int
main()
{
// Take any value
double
k = 5.06, p, fraction;
// Breaks k into two parts
fraction =
modf
(k, &p);
cout <<
"Integer Value = "
<< p
<< endl <<
"Fraction Value = "
<< fraction << endl;
return
0;
}
PRODUCCIÓN
Integer Value = 5 Fraction Value = 0.06
- Pasando un valor entero como argumento:
// CPP program to demonstrate
// modf() function
#include <bits/stdc++.h>
using
namespace
std;
int
main()
{
// Taking positive value
double
k = 8, p, fraction;
// Breaks k into two parts
fraction =
modf
(k, &p);
cout << k <<
" =>"
;
cout <<
"\tInteger Value = "
<< p
<< endl <<
"\tFraction Value = "
<< fraction << endl;
// Taking negative value
k = -8;
fraction =
modf
(k, &p);
cout << k <<
" =>"
;
cout <<
"\tInteger Value = "
<< p
<< endl <<
"\tFraction Value = "
<< fraction << endl;
return
0;
}
PRODUCCIÓN
8 => Integer Value = 8 Fraction Value = 0 -8 => Integer Value = -8 Fraction Value = -0
Nota: Como en el código anterior, el valor positivo da una salida positiva y el valor negativo da una salida negativa. Por lo tanto, tanto el fraccionario como el entero tienen el mismo signo que el valor dado en el argumento.
Publicación traducida automáticamente
Artículo escrito por AKASH GUPTA 6 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA