none
Não arredondar valores decimais RRS feed

  • Pergunta

  • Pessoal...

    Eu preciso formar um numero decimal para duas casas porém não posso arredondar... alguém poderia me ajudar?

    desde obrigado.


    João Batista :: MSN jbdiacompleto@hotmail.com :: http://www.hostmundo.com.br/hospedagem.php

    sábado, 19 de maio de 2012 16:12

Respostas

  • Colega,

    O C# por padrão arredonda, assim como o Excel, pelo que pude entender você deseja TRUNCAR, segue exemplo:

    public decimal ValorTruncado(decimal valor, int precisao)
    {
      decimal fator = (decimal)Math.Pow(10d, precisao);
      decimal valorTruncado = Math.Floor(valor * fator);
      return Math.Floor((Math.Round(valorTruncado, precisao))) / fator;
    }

    T+

    • Marcado como Resposta Joao Batista segunda-feira, 21 de maio de 2012 19:21
    segunda-feira, 21 de maio de 2012 18:25
  • Veja só:

                double x = 1.119;
    
                // Retorna 1,11
                string num2 = x.ToString().Substring(0, x.ToString().Length - 1);
    
                // Retorna 1,12
                string num1 = String.Format("{0:f}", x);

    Abç!!!


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           


    • Editado EduardoPiresMVP segunda-feira, 21 de maio de 2012 18:31
    • Marcado como Resposta Joao Batista segunda-feira, 21 de maio de 2012 19:21
    segunda-feira, 21 de maio de 2012 18:30

Todas as Respostas

  • Acho que só aumentando as casa decimais.

    Junior

    segunda-feira, 21 de maio de 2012 11:32
  • Ola Junior...

    Então, mas esse é o problema, eu não posso utilizar 3 casas para exibir o valor, exemplo:

    Seu der um FormatNumber(valor,2) => valores com 1,119 serão arredondados para 1,20 mas eu preciso que continuem sendo 1,11
    no FormatNumber(valor,3) daria certo, mas visualmente eu não posso exibir as 3 casas decimais.

    valeu...


    João Batista :: MSN jbdiacompleto@hotmail.com :: http://www.hostmundo.com.br/hospedagem.php

    • Marcado como Resposta Joao Batista segunda-feira, 21 de maio de 2012 19:21
    • Não Marcado como Resposta Joao Batista segunda-feira, 21 de maio de 2012 19:21
    segunda-feira, 21 de maio de 2012 11:58
  • Colega,

    O C# por padrão arredonda, assim como o Excel, pelo que pude entender você deseja TRUNCAR, segue exemplo:

    public decimal ValorTruncado(decimal valor, int precisao)
    {
      decimal fator = (decimal)Math.Pow(10d, precisao);
      decimal valorTruncado = Math.Floor(valor * fator);
      return Math.Floor((Math.Round(valorTruncado, precisao))) / fator;
    }

    T+

    • Marcado como Resposta Joao Batista segunda-feira, 21 de maio de 2012 19:21
    segunda-feira, 21 de maio de 2012 18:25
  • Veja só:

                double x = 1.119;
    
                // Retorna 1,11
                string num2 = x.ToString().Substring(0, x.ToString().Length - 1);
    
                // Retorna 1,12
                string num1 = String.Format("{0:f}", x);

    Abç!!!


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           


    • Editado EduardoPiresMVP segunda-feira, 21 de maio de 2012 18:31
    • Marcado como Resposta Joao Batista segunda-feira, 21 de maio de 2012 19:21
    segunda-feira, 21 de maio de 2012 18:30
  • Veja só:

                double x = 1.119;
    
                // Retorna 1,11
                string num2 = x.ToString().Substring(0, x.ToString().Length - 1);
    
                // Retorna 1,12
                string num1 = String.Format("{0:f}", x);

    Abç!!!


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           



     aqui pra mim foi em cima, perfeito.

    Obrigado
    (MCC, MVP)

    terça-feira, 17 de novembro de 2015 22:43