Ir ao conteúdo
  • Cadastre-se

Como arredondar um número?


Posts recomendados

eu preciso de uma ajuda de vocês nessa situação. dado um número qualquer tipo 10.896745 eu preciso de uma função que arredondasse para cima se a parte depois do ponto for maior q 0.5 e pra baixo se for menor ou igual a 0.5

Tá vocês podem tá achando q é fácil,mas é isso td sem usar vetor :ahh:

quem puder me ajudar eu agradeço :bye:

Link para o comentário
Compartilhar em outros sites

em C se você tem uma variável q vai sair de uma função float por exemplo pra transformá-la em int basta declará-la como int ou então usar o cast (int) x por exemplo

mas esse tipo de arredondamento não funciona porque ele sempre arrendonda pra baixo independente do valor

Exemplo: 10.01 e 10.96 nesse método são arredondados ambos pra 10 ao invés de 10 e 11 <_<

Link para o comentário
Compartilhar em outros sites

andrems, realmente funciona, mas e um exemplo disso em C?

faz tempo que não brinco com ele, não consigo me lembrar de uma função que pegue somente a parte inteira, se puder dizer, agradeço.

não pode ser int porque é declaração de variavel... mardito vb na veia =D

Link para o comentário
Compartilhar em outros sites

consigui fazer essas duas funções q estão funcionando beleza


int arredondamento1(double num)
{
   int num_int = num;
   if( (num - num_int) >= 0.5) return (num_int +1);
   else return num_int;
}

e essa

int arredondamento (double numero)
{   double fracao,inteiro;
   fracao = modf(numero,&inteiro);
   if (fracao> 0.5) return inteiro+1;
   else return inteiro;
}

valeu pela ajuda aí pessoal :palmas:

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Tente fazer assim:

Function Arredondar(dblNumber As Double, IntDecimais As Integer) As Double

Dim dblfator As Double

Dim dblTemp As Double

dblfator = 10 ^ IntDecimais

dblTemp = dblNumber * dblfator + 0.5

Arredondar = Int(dblTemp) / dblfator

End Function

eu fiz isso no modulo, no meu caso resolveu o problema, de outra forma só consegui jogar uma mascara, quando fui fazer a conta não dava certo.

ex: 1,224 + 1,224 = 1,448 o que arredondando dá 1,45. quando você trunca o número como né feito nesta função aciima ele arredonda o número para 1,22 {arredondar(1,22,2)} o resultado será 2,44.

obs: aquele número 0.5 é uma regra do aredondamento, assim se o número anterior for igual ou maior que 5 ele arredonda para cima, que é o padrão....

espero ter ajudado, em todo caso, copia a função acima e tenta...

Link para o comentário
Compartilhar em outros sites

  • 11 anos depois...

Se você quer apenas pegar um número e arredondar, você pode declarar uma variável em float ou double, dependendo da precisão do número recebido. Um double recebe uma precisão maior, 8bytes, e o float, 4 bytes. 

Comece o código chamando as bibliotecas necessárias, declare a variável, faça um scanf para recebê-la, e jogue-a num round. Vou te mandar um exemplo comentado:

 

#include<stdio.h>  //biblioteca padrão
#include<math.h>  //biblioteca matemática


int main(){

    float num; //declaração da váriavel num

    scanf("%f", &num); //lendo a variável num

    round(num);  //joguei a variável no round para ele fazer o processo

    printf("%.0f\n", num); //escrevi na tela o resultado do processo que o round fez
}

arredondar.png

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...