Fabio Vicente Postado Dezembro 4, 2021 Denunciar Share Postado Dezembro 4, 2021 Bom dia, estou com esse problema, devo estar errando alguma coisa. Pela calculadora 100,64 x 100,64 = 10.128,4096 Mas usando o código abaixo no ideone.com está dando resultado 10.128.4 Alguém sabe como resolver isso ? #include <iostream> using namespace std; int main() { float a = 100.64 * 100.64; cout << a ; return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
1 britivaldo Postado Dezembro 4, 2021 Denunciar Share Postado Dezembro 4, 2021 Float é um tipo menos preciso que double e o número de casa decimais foi arredondado para caber na saída padrão. Na norma EUA, o separador de frações é ponto (.). escreva std::fixed para desligar o arredondar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabio Vicente Postado Dezembro 4, 2021 Autor Denunciar Share Postado Dezembro 4, 2021 1 hora atrás, britivaldo disse: Float é um tipo menos preciso que double e o número de casa decimais foi arredondado para caber na saída padrão. Na norma EUA, o separador de frações é ponto (.). escreva std::fixed para desligar o arredondar. Obrigado pela resposta, é como você disse, está resolvido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Dezembro 5, 2021 Denunciar Share Postado Dezembro 5, 2021 Aparte disso você esta multiplicando um double por outro double e tentando guardar o resultado em um float causando assim a perda de informação. O que acontece neste caso é uma conversão implícita de tipos de double a float e isso pode dar lugar a erros importantes no seu código em um futuro. procure fazer desta forma: float a = 100.64f * 100.64f; O sufixo especifica o de literal de numero real: (sem sufixo) se define um double Com sufixos f ou F se define float Com sufixos l ou L se define long double O numero 100.64 se diz que é um literal de ponto flotante porem pode dar lugar a ambiguidades. você pode querer um double, um float, um long double, etc, por isso você deve informar o compilador usando os sufixos acima mencionados assim da a entender que você tem o controle do seu programa. Existem muitos tipos de literais, para praticamente todos os tipos, lhe recomendo que procure sobre o tema. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Fabio Vicente
Bom dia, estou com esse problema, devo estar errando alguma coisa.
Pela calculadora 100,64 x 100,64 = 10.128,4096
Mas usando o código abaixo no ideone.com está dando resultado 10.128.4
Alguém sabe como resolver isso ?
#include <iostream>
using namespace std;
int main() {
float a = 100.64 * 100.64;
cout << a ;
return 0;
}
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.