2009-04-23 15 views
5

Wie richte ich dezimale Werte ab?
Beispiel:Abrundung Dezimalwerte in C#

dezimal Value = "19.500,98"

ich brauche diesen Wert anzuzeigen mit wie "19501" abgerundet Textbox

wenn Dezimalwert = "19.500,43"

dann

Wert = "19500"

+0

Es gibt mehr als einen Weg, Zahlen runden hilft, je nach Anwendungsdomäne Sie brauchen Achten Sie darauf, die richtige Art der Rundung zur richtigen Zeit zu verwenden. – Richard

Antwort

20

Betrachten Sie Math.Round(decimal) oder the overload which takes a MidpointRounding argument.

Natürlich müssen Sie den Wert analysieren und formatieren, um es von/zu Text zu erhalten. Wenn diese Eingabe vom Benutzer eingegeben wird, sollten Sie wahrscheinlich decimal.TryParse verwenden und anhand des Rückgabewerts feststellen, ob die Eingabe gültig war.

string text = "19500.55"; 
decimal value; 
if (decimal.TryParse(text, out value)) 
{ 
    value = Math.Round(value); 
    text = value.ToString(); 
    // Do something with the new text value 
} 
else 
{ 
    // Tell the user their input is invalid 
} 
5

Math.Round (Wert, 0)

1

Try this ...

var someValue=123123.234324243m; 
var strValue=someValue.ToString("#"); 
-2
Total = Math.Ceiling(value) 

Antworten, wenn es Sie

+1

Decke rundet es auf. "19500.43" wird "19501" und nicht "19500" wie das OP beabsichtigt. – Ivar

+0

ja also, wenn Sie Betrag abrunden möchten, wenn es größer als 0,5 ist, dann können Sie Math.Round verwenden (Value, MidpointRounding.AwayFromZero); – Bilal

+0

oder kann diese Math.Round (Value, MidpointRounding.ToEven); – Bilal

Verwandte Themen