Ir ao conteúdo
  • Cadastre-se

Problema com a biblioteca <iomanip> e setprecision


Ir à solução Resolvido por RobsonAlvesBH,

Posts recomendados

Fala pessoal beleza, procurei algum tópico relacionada a minha duvida mas não encontrei, se houver algum desculpem minha "incompetência", mas é que sou novo aqui e ainda estou pegando o "jeitão" do fórum.

 

Estou criando um programa que utiliza switch case, e dentro de cada case preciso que meu valor de resposta, que é do tipo float, esteja formatado com apenas duas casas decimais.

 

Para isso estou utilizando a biblioteca <iomanip> e o manipulador setprecision que teoricamente era para formatar as casas decimais conforme eu desejar, exemplo, se eu colocar setprecision(2) era para ele mostrar apenas 2 casas apos a virgula, mas o que acontece que ele exibe apenas duas casas sem conta a virgula, tipo se eu tiver uma dizima periódica 3.333333333333 ele pega os dois primeiros números e exibe 3.3, o mais bizarro disso é que se eu tiver um numero 100 por exemplo ele pega os dois primeiros números exibindo apenas 10.

 

Já aconteceu isto com alguém? Sabe como corrigir? Quem puder deixar um comentário ai para me ajudar agradeço.

 

abs.

Link para o comentário
Compartilhar em outros sites

  • Solução

Além de usar setprecision você também tem que usar fixed.

#include <iostream>#include <iomanip>int main() {    double d = 1234.56789;    std::cout << std::fixed << std::setprecision(2) << d << std::endl;    return 0;}

Testei aqui e funcionou direitinho, era o fixed que estava faltando, muito obrigado.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...