Подтвердить что ты не робот

Оставьте только две десятичные знаки после точки

public void LoadAveragePingTime()
{
    try
    {
        PingReply pingReply = pingClass.Send("logon.chronic-domination.com");
        double AveragePing = (pingReply.RoundtripTime / 1.75);

        label4.Text = (AveragePing.ToString() + "ms");                
    }
    catch (Exception)
    {
        label4.Text = "Server is currently offline.";
    }
}

В настоящее время мой label4.Text получает что-то вроде: "187.371698712637".

Мне нужно, чтобы показать что-то вроде: "187.37"

Только два поста после DOT. Кто-нибудь может мне помочь?

4b9b3361

Ответ 1

string.Format - ваш друг.

String.Format("{0:0.00}", 123.4567);      // "123.46"

Ответ 2

Если вы хотите взять только два числа после запятой, вы можете использовать математический класс, который дает вам функцию округления, например:

float value = 92.197354542F;
value = (float)System.Math.Round(value,2);         // value = 92.2;

Надеюсь, что эта помощь
ура

Ответ 3

// just two decimal places
String.Format("{0:0.00}", 123.4567);      // "123.46"
String.Format("{0:0.00}", 123.4);         // "123.40"
String.Format("{0:0.00}", 123.0);         // "123.00"

http://www.csharp-examples.net/string-format-double/

изменить

Не знаю, почему они использовали "String" вместо "string", но все остальное верно.

Ответ 4

double amount = 31.245678;
amount = Math.Floor(amount * 100) / 100;

Ответ 5

Вы можете использовать это

"String.Format("{0:F2}", String Value);"

Дает вам только две цифры после точки, ровно две цифры.

Ответ 6

Используя свойство String

double value = 123.456789;
String.Format("{0:0.00}", value);

Примечание. Это можно использовать только для отображения.

Используя System.Math

double value = 123.456789;
System.Math.Round(value, 2);

Ответ 7

В качестве альтернативы вы также можете использовать составной оператор F, а затем указать, сколько десятичных пятен вы хотите отобразить после десятичного числа.

string.Format("{0:F2}", 123.456789);     //123.46
string.Format("{0:F3}", 123.456789);     //123.457
string.Format("{0:F4}", 123.456789);     //123.4568

Он будет округлен, поэтому будьте в курсе этого.

Я получил общую документацию. Там также есть множество других операторов форматирования, которые вы можете проверить.

Источник: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx

Ответ 8

Попробуйте это

public static string PreciseDecimalValue(double Value, int DigitsAfterDecimal)
        {
            string PreciseDecimalFormat = "{0:0.0}";

            for (int count = 2; count <= DigitsAfterDecimal; count++)
            {
                PreciseDecimalFormat = PreciseDecimalFormat.Insert(PreciseDecimalFormat.LastIndexOf('}'), "0");
            }
            return String.Format(PreciseDecimalFormat, Value);
        }

Ответ 9

Попробуйте следующее:

double result = Math.Round(24.576938593,2);
MessageBox.Show(result.ToString());

Выход: 24.57

Ответ 10

Простое решение:

double totalCost = 123.45678;
totalCost = Convert.ToDouble(String.Format("{0:0.00}", totalCost));

//output: 123.45

Ответ 11

yourValue.ToString("0.00") will work.

Ответ 12

Использовать строчную интерполяцию decimalVar:0.00

Ответ 13

double doublVal = 123.45678;

Есть два пути.

  1. для отображения в строке:

    String.Format("{0:0.00}", doublVal );
    
  2. для получения снова дважды

    doublVal = Convert.ToDouble(String.Format("{0:0.00}", doublVal ));