none
Rotina pra arredondar valor RRS feed

  • Pergunta

  • Uso VS2010, aspnet4, c#

    preciso fazer uma rotina pra arredondar valores decimais, essa rotina recebe o valor decimal e devolve-o arredondado

    ex: o valor vai de 0 até 10 como 4,4632, 5,34, 8,96, 5,3456, 7,5...

    funciona assim: caso exista, se a segunda casa decimal depois da vírgula for >= 5 arredonda para o próximo

    exemplo

    4,5666 = 4,6

    8,43 = 8,4

    7,88 = 7,9

    3,197 = 3,2

    5,5398 = 5,5

    5,0 = 5,0

    4,3 = 4,3

    0,27 = 0,3

    a rotina que recebe o decimal seria mais ou menos assim

    decimal? arredondaMedia(decimal? media)
    {
       if (media == null)
           return null;
        else
        {
            // Faz os calculos informados
            // return mediaArredondada;
        }
    }


    Álvaro Luiz


    • Editado Álvaro Luiz terça-feira, 22 de abril de 2014 22:35
    terça-feira, 22 de abril de 2014 22:34

Respostas

  • Álvaro Luiz,

    Cara Na classe Math tem um método chamado Round , acho q ele deve resolver o problema !!!

    tenta assim:

                decimal Valor = 8.6878m;
                var novoValor = Math.Round(Valor, 1);



    Diego Almeida Barreto
    System Analyst / Software Developer

    • Marcado como Resposta Álvaro Luiz quinta-feira, 24 de abril de 2014 22:48
    terça-feira, 22 de abril de 2014 22:46
  • Como o amigo Diego Lewis disse acima o método Math.Round provavelmente irá te ajudar.

    Aqui tem um link, com diversos exemplos de arredondamento de decimais com C#: 

    http://www.blackwasp.co.uk/RoundingDecimals.aspx

    Ex: 

    decimal result;
    result = decimal.Round(1.2345M, 1); // result = 1.2
    result = decimal.Round(1.2345M, 2); // result = 1.23
    result = decimal.Round(1.2345M, 3); // result = 1.234


    quarta-feira, 23 de abril de 2014 06:05

Todas as Respostas

  • Álvaro Luiz,

    Cara Na classe Math tem um método chamado Round , acho q ele deve resolver o problema !!!

    tenta assim:

                decimal Valor = 8.6878m;
                var novoValor = Math.Round(Valor, 1);



    Diego Almeida Barreto
    System Analyst / Software Developer

    • Marcado como Resposta Álvaro Luiz quinta-feira, 24 de abril de 2014 22:48
    terça-feira, 22 de abril de 2014 22:46
  • Como o amigo Diego Lewis disse acima o método Math.Round provavelmente irá te ajudar.

    Aqui tem um link, com diversos exemplos de arredondamento de decimais com C#: 

    http://www.blackwasp.co.uk/RoundingDecimals.aspx

    Ex: 

    decimal result;
    result = decimal.Round(1.2345M, 1); // result = 1.2
    result = decimal.Round(1.2345M, 2); // result = 1.23
    result = decimal.Round(1.2345M, 3); // result = 1.234


    quarta-feira, 23 de abril de 2014 06:05