canudos Postado Novembro 8, 2005 Denunciar Share Postado Novembro 8, 2005 Salve pessoal,fiz um programa que requer que o usuário entre com números "double" . Como faço para que o c++ aceite 2,36 como sendo 2.36 (por exemplo) ? obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 9, 2005 Denunciar Share Postado Novembro 9, 2005 Salve pessoal,fiz um programa que requer que o usuário entre com números "double" . Como faço para que o c++ aceite 2,36 como sendo 2.36 (por exemplo) ? obrigado Como o "número" inicialmente vai ser uma string, basta você trocar a "," pelo "." e depois utilizar a função atof() para converter (ela faz parte da stdlib.h).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 canudos Postado Novembro 27, 2005 Autor Denunciar Share Postado Novembro 27, 2005 Salve pessoal,fiz um programa que requer que o usuário entre com números "double" . Como faço para que o c++ aceite 2,36 como sendo 2.36 (por exemplo) ? obrigado Como o "número" inicialmente vai ser uma string, basta você trocar a "," pelo "." e depois utilizar a função atof() para converter (ela faz parte da stdlib.h).Abraços,Graymalkin Salve Graymalkin, salve pessoal ,Teria alguma maneira mais direta de se fazer isso, eu consegui usando a sua dica mas me deram a dica de usar o cabeçalho <locale> só que eu não consegui, esta sempre retornando somente a parte inteira. #include <locale>#include <iostream>int main(){std::cout<< "Entre com a espessura de parede em milimetros: "; std::cin.imbue( std::locale("") ); double x=0; std::cin >> x; std::cout << "Foi digitado: " << x << std::endl; system("pause"); return 0;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 27, 2005 Denunciar Share Postado Novembro 27, 2005 Aí vai um exemplo do que falei no outro post:#include <string.h> #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; int main() { double d; char s[10]; cout << "Digite um valor:"; cin >> s; cout << endl; for (int i=0; i<strlen(s); i++) if (s[i]==',') s[i] = '.'; d = atof(s); cout << d << endl; cout << (d+1.0) << endl; //Confirmando que "d" é um double system("pause"); }Certo? Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 canudos Postado Novembro 27, 2005 Autor Denunciar Share Postado Novembro 27, 2005 Perfeito Graymalkin,desta maneira eu já tinha conseguido seguindo a sua dica.....eu me referia ao <locale> que corrige direto mas esta retornando sempre um inteiro.obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
canudos
Salve pessoal,
fiz um programa que requer que o usuário entre com números "double" . Como faço para que o c++ aceite 2,36 como sendo 2.36 (por exemplo) ?
obrigado
Link para o comentário
Compartilhar em outros sites
4 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.