Format decimal places in Forms

Asked

Viewed 146 times

4

I need to format the decimals and I can’t. What is the correct way to do the formatting in this case?

 double peso, altura, imc;
        string nome;

        nome = txtnome.Text;
        peso = Convert.ToDouble(txtpeso.Text);
        altura = Convert.ToDouble(txtaltura.Text);

        imc = (peso) / (altura * altura);

        if(imc < 18)
        {
            //lblimc.Text = String.Format("{ 5.2 } ", imc);
            //lblimc.Text = String.Format("{0:#.#,##}", imc);
        }
        else if(imc >= 18 && imc <= 24.9)
        {
            lblimc.Text = (nome + " seu IMC é "+ "\n" + imc + " você está no peso ideal!!");
        }
        else if(imc >= 25 && imc <= 29.9)
        {
            lblimc.Text = (nome + " seu IMC é " + "\n" + imc + "você está acima do peso ideal!!");
        }
        else if(imc >= 30 && imc <= 34.9)
        {
            lblimc.Text = (nome + " seu IMC é " + "\n" + imc + "você está na obesidade de 1º grau!!");
        }
        else if(imc >= 35 && imc <= 39.9)
        {
            lblimc.Text = (nome + " seu IMC é " + "\n" + imc + "você está na obesidade severa!!");
        }
        else
        {
            lblimc.Text = (nome + " seu IMC é " +  "\n" + imc + "você está em obesidade mórbida!!");
        }

2 answers

4

If you want to ensure that the format is the one you said on any computer you need to tell which culture to use in the code:

string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:N}", 43239.11));

You need to use namespace System.Globalization.

4

I couldn’t identify the format that Voce wants, but anyway, one way to format is with the "N" specifier and also, if you want to have greater consistency, you can use Cultureinfo for a specific format of some parents for example.

Note: with Cultureinfo you need to import the System.Globalization

double value = 10002.22644123;
Console.WriteLine ($"{value:N2}"); // 10,002.23
Console.WriteLine(value.ToString("N",CultureInfo.CreateSpecificCulture("pt-BR"))); // 10.002,23
Console.WriteLine(value.ToString("N",CultureInfo.InvariantCulture)); // 10,002.23

You can see more about the documentation of standard formatting , or if you want something more custom you can see in custom documentation.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.