• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

André Sousa

Arredondamentos...

7 mensagens neste tópico

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso estou a trabalhar com doubles e o problema é o mesmo. Eu quero que apareça 0.4 % e não 0.0%.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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);
   }    
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

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