Biblioteca de ios C ++ - Función científica

Descripción

Se utiliza para establecer el indicador de formato de campo flotante para el flujo str en científico. Cuando floatfield se establece en científico, los valores de punto flotante se escriben utilizando notación científica: el valor se representa siempre con un solo dígito antes del punto decimal, seguido del punto decimal y tantos dígitos decimales como el campo de precisión (precisión). Finalmente, esta notación siempre incluye una parte exponencial que consiste en la letra e seguida de un signo opcional y tres dígitos exponenciales.

C ++ 98

La bandera de formato de campo flotante es tanto selectiva como de alternancia: puede tomar uno o más de los siguientes valores, como se muestra a continuación:

valor de la bandera efecto cuando se establece
fijo escribir valores de punto flotante en notación de punto fijo
científico escribir valores de punto flotante en notación científica.
(ninguna) escribir valores de coma flotante en la notación predeterminada de coma flotante.

C ++ 11

La bandera de formato de campo flotante es tanto selectiva como de alternancia: puede tomar cualquiera de los siguientes valores, o ninguno, como se muestra a continuación:

valor de la bandera efecto cuando se establece
fijo escribir valores de coma flotante en notación de coma fija.
científico escribir valores de punto flotante en notación científica.
hexfloat

escribir valores de coma flotante en formato hexadecimal.

El valor de esto es el mismo que (fixed|scientific)

flotar por defecto escribir valores de coma flotante en la notación predeterminada de coma flotante. Este es el valor por defecto (igual que ninguno, antes que cualquier otroFloatfield bit está establecido).

Declaración

A continuación se muestra la declaración para std :: scientific function.

ios_base& scientific (ios_base& str);

Parámetros

str - Objeto de flujo cuya bandera de formato está afectada.

Valor devuelto

Devuelve Argument str.

Excepciones

Basic guarantee - si se lanza una excepción, str está en un estado válido.

Carreras de datos

Modifica str. El acceso simultáneo al mismo objeto de flujo puede provocar carreras de datos.

Ejemplo

En el siguiente ejemplo se explica la función std :: scientific.

#include <iostream>

int main () {
   double a = 3.1415926534;
   double b = 2006.0;
   double c = 1.0e-10;

   std::cout.precision(5);

   std::cout << "default:\n";
   std::cout << a << '\n' << b << '\n' << c << '\n';

   std::cout << '\n';

   std::cout << "fixed:\n" << std::fixed;
   std::cout << a << '\n' << b << '\n' << c << '\n';

   std::cout << '\n';

   std::cout << "scientific:\n" << std::scientific;
   std::cout << a << '\n' << b << '\n' << c << '\n';
   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

default:
3.1416
2006
1e-010

fixed:
3.14159
2006.00000
0.00000

scientific:
3.14159e+000
2.00600e+003
1.00000e-010