1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[C] Separar Float em parte decimal e parte inteira

Discussão em 'Programação' iniciada por Mach4_PT, 25 de Outubro de 2008. (Respostas: 4; Visualizações: 12030)

  1. Mach4_PT

    Mach4_PT Power Member

    Boas.
    Tenho um problema que nao consegui resolver.

    É o seguinte.

    Tenho de calcular a media baseado em 2 valores e gostava que ele arredonda-se normalmente. (desde o x.0 até ao x.4 arredonda para baixo e do x.5 ate ao x.9 arredonda para cima)
    Mas o simpático do C nao faz isso... o x.5 arredonda para baixo.
    Eu gostava de poder separar a parte decimal para depois poder adiciona-la a um bloco IF onde usaria a função floor ou ceil conforme me desse jeito.

    Como posso faze-lo?
    Obrigado
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Só me ocorre uma coisa:
    floor(numero) = parte inteira
    numero - floor(numero) = parte decimal

    Pode não ser a melhor, mas para já dá para o gasto :x

    edit - ou outra coisa: somar 0.5 e fazes floor: floor(numero + 0.5) e isso arredonda bem. Para 5.5 sai floor(6.0) = 6; para 5.4 sai floor(5.9) = 5.
     
    Última edição: 25 de Outubro de 2008
  3. Mach4_PT

    Mach4_PT Power Member

    A Segunda opção parece-me bastante bem :)

    Obrigado
     
  4. Liteflame

    Liteflame Power Member

    Boas,

    O meu professor de programação ensinou assim mesmo na aula teórica: somar 0.5 e de seguida fazer floor. Simples!:p
     
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Essa forma é mesmo ensinada nas aulas? Fixe! :P
    É sinal que é boa :D
     

Partilhar esta Página