Ответ 1
string.Format
- ваш друг.
String.Format("{0:0.00}", 123.4567); // "123.46"
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. Кто-нибудь может мне помочь?
string.Format
- ваш друг.
String.Format("{0:0.00}", 123.4567); // "123.46"
Если вы хотите взять только два числа после запятой, вы можете использовать математический класс, который дает вам функцию округления, например:
float value = 92.197354542F;
value = (float)System.Math.Round(value,2); // value = 92.2;
Надеюсь, что эта помощь
ура
// 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", но все остальное верно.
double amount = 31.245678;
amount = Math.Floor(amount * 100) / 100;
Вы можете использовать это
"String.Format("{0:F2}", String Value);"
Дает вам только две цифры после точки, ровно две цифры.
Используя свойство String
double value = 123.456789;
String.Format("{0:0.00}", value);
Примечание. Это можно использовать только для отображения.
Используя System.Math
double value = 123.456789;
System.Math.Round(value, 2);
В качестве альтернативы вы также можете использовать составной оператор 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
Попробуйте это
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);
}
Попробуйте следующее:
double result = Math.Round(24.576938593,2);
MessageBox.Show(result.ToString());
Выход: 24.57
Простое решение:
double totalCost = 123.45678;
totalCost = Convert.ToDouble(String.Format("{0:0.00}", totalCost));
//output: 123.45
yourValue.ToString("0.00") will work.
Использовать строчную интерполяцию decimalVar:0.00
double doublVal = 123.45678;
Есть два пути.
для отображения в строке:
String.Format("{0:0.00}", doublVal );
для получения снова дважды
doublVal = Convert.ToDouble(String.Format("{0:0.00}", doublVal ));