Ir para o conteúdo
André Sousa

Arredondamentos...

Mensagens Recomendadas

André Sousa    0
André Sousa

Imaginem que faço um programa em Java cuja percentagem de x coisas dá 0.4% , ora normalmente em Java o valor é arredondado, mostrando 0.0%. Há alguma forma de mostrar o valor exacto?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

Tu não queres o exacto, queres uma valor aproximado, só que não queres à undade.

Isso acontece-te porque estás a trabalhar com inteiros. Se dividires um inteiro pelo outro estás a fazer uma divizão inteira, aquela que se aprende na escola primária.

converte esses valores para floats e tens o teu problema resolvido.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

Tens aí um erro algures no teu código. Essa situação não pode acontecer por estares a usar floats, os floats servem precisamente para isso não acontecer.

p@p-laptop:~/Desktop$ javac dividir.java 
p@p-laptop:~/Desktop$ java dividir 
0.4

class dividir{

   public static void main(String[] args) {
       float a = 4;
       float b = 10;
       System.out.println(a/b);
       System.exit(0);
   }    
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Knitter    101
Knitter

Imaginem que faço um programa em Java cuja percentagem de x coisas dá 0.4% , ora normalmente em Java o valor é arredondado, mostrando 0.0%. Há alguma forma de mostrar o valor exacto?

Não sei onde foste buscar a ideia de que "normalmente em Java o valor é arredondado", aliás, seja ou não arredondado, 0.4 é diferente de 0.0, em Java ou em qualquer linguagem.

Se 0.4, no teu programa está igual a 0.0 então tens um erro de código ou um erro de arredondamento introduzido por ti.

Em qualquer número de virgula flutuante em Java, 0.0 é diferente de 0.4 e não existem arredondamentos desse tipo, alias, um arredondamento de 0.4 para 0.0 é um grande arredondamento que só por si indicaria um erro de contas ou código.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
dcgc    0
dcgc

Desculpem o desenterro, mas tive este problema (é mais uma dúvida). O que fiz foi meter todas as variáveis com o mesmo tipo de variável, assim já tinha o resultado pretendido. No caso da percentagem, usei o float.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade