Arredondamento de valores de meio em meio [RESOLVIDO]  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
flaviochess
Thread.start()
[Avatar]

Membro desde: 03/01/2011 20:46:43
Mensagens: 33
Localização: São Paulo
Offline

Pessoal, boa tarde!

Estou com dificuldades com arredondamento de um Double... eu sei, eu sei, que tem diversos tópicos sobre isso, mas estou procurando um arredondamento específico:

Gostaria de saber se existe alguma função que faz o arredondamento onde o resultado seja o número "inteiro" X ou X.5.
É para um sistema de notas, e as notas só podem ser, por exemplo, 8 ou 8.5 e não 8.3.

Não sei se fui claro o suficiente

Se alguém puder me ajudar... obrigado!

This message was edited 1 time. Last update was at 14/10/2011 12:11:55

flaviochess
Thread.start()
[Avatar]

Membro desde: 03/01/2011 20:46:43
Mensagens: 33
Localização: São Paulo
Offline

Ah, e só para complementar minha dúvida... o usuário entra com a nota da forma que quiser, o sistema que deve arredondar esta entrada antes de armazenar ou recuperar no banco.
Marcelo de Andrade
Thread.start()

Membro desde: 19/08/2011 20:46:05
Mensagens: 47
Localização: Maceió - AL
Offline

Uma pesquisada rápida pela WEB e você teria encontrado.

This message was edited 4 times. Last update was at 12/10/2011 14:26:25

[Email]
flaviochess
Thread.start()
[Avatar]

Membro desde: 03/01/2011 20:46:43
Mensagens: 33
Localização: São Paulo
Offline

Obrigado, vou verificar....

Mas o que não faltou foi pesquisa... é que é fácil encontrar quando se sabe o que procurar


Novamente obrigado!
viniciusalvess
Java Ninja
[Avatar]

Membro desde: 02/09/2008 12:17:08
Mensagens: 259
Offline

você pode usar também BigDecimal http://download.oracle.com/javase/1,5.0/docs/api/java/math/BigDecimal.html, que ja vem com as formar de arredondamento para setar de acordo com sua necessidade ;
Vingdel
JavaEvangelist
[Avatar]

Membro desde: 19/11/2006 22:09:57
Mensagens: 358
Localização: Cabo Frio - RJ
Offline

flaviochess wrote:Pessoal, boa tarde!

Estou com dificuldades com arredondamento de um Double... eu sei, eu sei, que tem diversos tópicos sobre isso, mas estou procurando um arredondamento específico:

Gostaria de saber se existe alguma função que faz o arredondamento onde o resultado seja o número "inteiro" X ou X.5.
É para um sistema de notas, e as notas só podem ser, por exemplo, 8 ou 8.5 e não 8.3.

Não sei se fui claro o suficiente

Se alguém puder me ajudar... obrigado!


Aí vem minhas dúvidas:

Mas se as notas só podem ser 8.0, 8.5, 9.0, por que a pessoa tirou 8.3 ou 7.4?

E já que a pessoa tirou 7.2, por que o sistema vai armazenar como 7.0 ou 7.5? Não seria, injusto com outras pessoas que tiraram 7.1 ou 7.4, dependendo do critério de arredondamento?

Bom, após isso, acho que você mesmo pode criar um método para fazer isso, não tem complicação.

Abraço!

  • Caso tua dúvida esteja sanada edite tua primeira postagem no tópico e adicione [RESOLVIDO] ao assunto.
  • Poste teu código entre as tags [code] ... [/code].



  • flaviochess
    Thread.start()
    [Avatar]

    Membro desde: 03/01/2011 20:46:43
    Mensagens: 33
    Localização: São Paulo
    Offline

    Vinicius e Vingdel, obrigado pelas dicas...

    Eu não encontrei nenhuma função que faça exatamente o que eu queria (nem mesmo com a lista de "pesquisa rápida que eu teria encontrado" que o Marcelo passou).

    Acredito que a solução para isso seja criar a minha própria função, assim como Vingdel disse!
    Vou separa a casa decimal e realizar as verificações.
    Danillo_Moreno
    JavaTeenager
    [Avatar]

    Membro desde: 15/02/2008 09:21:37
    Mensagens: 186
    Offline

    http://www.guj.com.br/java/251334-resolvido-como-arredondar-media-final-com-regras-especificas

    Danillo
    In Lemmy We Trust!!!
    Vingdel
    JavaEvangelist
    [Avatar]

    Membro desde: 19/11/2006 22:09:57
    Mensagens: 358
    Localização: Cabo Frio - RJ
    Offline

    Olá, veja se assim te satisfaz...



    Ou você quer arredondar sempre para cima?

    Abraço!

  • Caso tua dúvida esteja sanada edite tua primeira postagem no tópico e adicione [RESOLVIDO] ao assunto.
  • Poste teu código entre as tags [code] ... [/code].



  • flaviochess
    Thread.start()
    [Avatar]

    Membro desde: 03/01/2011 20:46:43
    Mensagens: 33
    Localização: São Paulo
    Offline

    É, entrando na questão que o modo é criarmos nosso próprio método, encontraríamos diversas formas de se fazer... tanto o método do Vingdel quanto o link passado pelo Danilo já resolve o problema.

    Também fiz a minha própria, então segue mais uma alternativa:



    Agradeço a todos!
    marcobiscaro2112
    JWizard

    Membro desde: 01/12/2008 11:56:04
    Mensagens: 2408
    Localização: São Paulo - SP
    Offline

    Só para constar, outra maneira de fazer (a que uso):



    Se a nota for 7.1, por exemplo:

    7.1 / 0.5 = 14.2
    round(14.2) = 14
    14 * 0.5 = 7

    Se for 7.4:

    7.3 / 0.5 = 14.6
    round(14.6) = 15
    15 * 0.5 = 7.5

    Se for um valor já arredondado (por exemplo 6.5):

    6.5 / 0.5 = 13
    round(13) = 13
    13 * 0.5 = 6.5

    Marco Biscaro.

    Seja livre!

    Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

    Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
    [Email] [WWW] [MSN]
    flaviochess
    Thread.start()
    [Avatar]

    Membro desde: 03/01/2011 20:46:43
    Mensagens: 33
    Localização: São Paulo
    Offline

    Boa e velha matemática... muito boa a solução Marco e também a mais simples!
    Vou substituir minha solução por esta!
     
    Índice dos Fóruns » Java Básico
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team