Biblioteca C ++ ios - Função Científica

Descrição

É usado para definir o sinalizador de formato floatfield para o fluxo str para científico. Quando floatfield é definido como científico, os valores de ponto flutuante são escritos usando notação científica: o valor é representado sempre com apenas um dígito antes do ponto decimal, seguido pelo ponto decimal e tantos dígitos decimais quanto o campo de precisão (precisão). Finalmente, essa notação sempre inclui uma parte exponencial consistindo na letra e seguida por um sinal opcional e três dígitos exponenciais.

C ++ 98

O sinalizador de formato floatfield é seletivo e alternativo: ele pode ter um ou mais dos seguintes valores, conforme mostrado abaixo -

valor da bandeira efeito quando definido
fixo escrever valores de ponto flutuante em notação de ponto fixo
científico escrever valores de ponto flutuante em notação científica.
(Nenhum) escrever valores de ponto flutuante na notação de ponto flutuante padrão.

C ++ 11

O sinalizador de formato floatfield é seletivo e alternativo: ele pode assumir qualquer um dos seguintes valores ou nenhum como mostrado abaixo -

valor da bandeira efeito quando definido
fixo escrever valores de ponto flutuante em notação de ponto fixo.
científico escrever valores de ponto flutuante em notação científica.
hexfloat

escrever valores de ponto flutuante em formato hexadecimal.

O valor disso é o mesmo que (fixed|scientific)

flutuar escrever valores de ponto flutuante na notação de ponto flutuante padrão. Este é o valor padrão (igual a nenhum, antes de qualquer outroFloatfield bit está definido).

Declaração

A seguir está a declaração para a função std :: scientific.

ios_base& scientific (ios_base& str);

Parâmetros

str - Objeto de fluxo cujo sinalizador de formato é afetado.

Valor de retorno

Ele retorna Argument str.

Exceções

Basic guarantee - se uma exceção for lançada, str está em um estado válido.

Corridas de dados

Ele modifica str. O acesso simultâneo ao mesmo objeto de fluxo pode causar disputas de dados.

Exemplo

No exemplo abaixo, explica sobre a função 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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

default:
3.1416
2006
1e-010

fixed:
3.14159
2006.00000
0.00000

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