Deja sólo dos cifras decimales después del punto
-
18-09-2019 - |
Pregunta
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.";
}
}
En la actualidad algo que mi label4.Text de conseguir como: "187.371698712637"
Lo necesito para mostrar algo como: "187.37"
Sólo dos puestos después del punto. Alguien me puede ayudar?
Solución
string.Format
es su amigo.
String.Format("{0:0.00}", 123.4567); // "123.46"
Otros consejos
Si usted quiere tomar sólo dos números después de comas puede utilizar la clase de matemáticas que le dan la función de redondeo por ejemplo:
float value = 92.197354542F;
value = (float)System.Math.Round(value,2); // value = 92.2;
Espero que esta ayuda
Saludos
// 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/
editar
Ni idea de por qué se utiliza "Cadena" en lugar de "cadena", pero el resto es correcta.
double amount = 31.245678;
amount = Math.Floor(amount * 100) / 100;
Puede utilizar este
"String.Format (" {0: F2} "en Valor de cadena);"
// give you only the two digit after Dot, excat two digit.
Como alternativa, también puede utilizar el operador compuesto F y luego indica cuántos puntos decimales que desea que aparezca después del decimal.
string.Format("{0:F2}", 123.456789); //123.46
string.Format("{0:F3}", 123.456789); //123.457
string.Format("{0:F4}", 123.456789); //123.4568
Se redondea hacia arriba así que sea consciente de ello.
I de origen la documentación general. Hay un montón de otros operadores de formato no así que usted puede comprobar hacia fuera.
Fuente: https://msdn.microsoft .com / es-es / library / dwhawy9k (v = vs.110) .aspx
Probar
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);
}
El uso de la propiedad de String
double value = 123.456789;
String.Format("{0:0.00}", value);
Nota:. Esto puede ser usado para mostrar sólo
Uso System.Math
double value = 123.456789;
System.Math.Round(value, 2);
Prueba esto:
double result = Math.Round(24.576938593,2);
MessageBox.Show(result.ToString());
Salida: 24.57
Una solución simple:
double totalCost = 123.45678;
totalCost = Convert.ToDouble(String.Format("{0:0.00}", totalCost));
//output: 123.45
yourValue.ToString("0.00") will work.
Usar cadena de interpolación decimalVar:0.00
double doublVal = 123.45678;
Hay dos maneras.
-
para la exhibición en cadena:
String.Format("{0:0.00}", doublVal );
-
para que consigue de nuevo doble
doublVal = Convert.ToDouble(String.Format("{0:0.00}", doublVal ));