2012-05-25 19 views
36
decimal Debitvalue = 1156.547m; 

decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:0.00}", Debitvalue)); 

Muszę uzyskać tylko dwa miejsca po przecinku, ale używając tego kodu uzyskuję 1156,547. Poinformuj mnie, jaki format mam użyć, aby wyświetlić dwa miejsca po przecinku.Dwa miejsca dziesiętne za pomocą C#

+0

Program Math.Round zadziała, a nawet twój kod będzie działał. Przetestowałem twój kod i działało dobrze dziesiętna Debitvalue = Convert.ToDecimal ("1156.547"); DEBITAMT dziesiętny = Convert.ToDecimal (string.Format ("{0: 0.00}", Debitvalue)); Console.WriteLine (DEBITAMT); – Anand

+0

Tak, twoja poprawna, dzięki! –

Odpowiedz

27

Jeśli chcesz zaokrąglić po przecinku, spojrzeć na Math.Round()

+4

dlaczego nie to Convert.ToDecimal (string.Format ("{0: F2}", Debitvalue)), kiedy już używamy convert.todecimal w kodzie. – Dragon

+4

@Dragon - ponieważ przekształcenie numeru w ciąg znaków i powrót do liczby jest zapachem kodu. – cjk

+1

ooh kk.. następnie użyję jak to Math.round (Convert.todecimal (val), 2) .. – Dragon

39

Zastosowanie Math.Round() dla zaokrągleniu do dwóch miejsc po przecinku

decimal DEBITAMT = Math.Round(1156.547m, 2); 
14

Oto kolejny podejście

decimal decimalRounded = Decimal.Parse(Debitvalue.ToString("0.00")); 
44

Twoje pytanie jest pytaniem wyświetl dwa miejsca po przecinku. Korzystanie z poniższego pliku String.format pomoże:

String.Format("{0:.##}", Debitvalue) 

wyświetli to liczbę z dwoma miejscami dziesiętnymi.

Albo jeśli chcesz symbol waluty wyświetlane zastosowanie następujące:

String.Format("{0:C}", Debitvalue) 
+5

Właściwie format w pierwszym byłby "{0: .00}", gdyby chciał 2.10 pokazać. W przypadku ## będzie to 2.1. – SvendK

+0

ten naprawdę nie działa. zajmie 4.998 do 5, ale OP chce mieć 2 miejsca dziesiętne jako 4,99 – batmaci

15

używam

decimal Debitvalue = 1156.547m; 
decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:F2}", Debitvalue)); 
3

inny sposób:

dziesiętna.Różnica (decimalvalue, 2, MidpointRounding.AwayFromZero);

2

Prawdopodobnie wariant innych przykładów, ale używam tej metody również upewnić się, kropka jest pokazany przed miejsc po przecinku, a nie przecinek:

someValue.ToString („0.00”, CultureInfo.InvariantCulture)

8

najlepszym rozwiązaniem, jeśli chcesz zawsze pokazują dwa miejsca po przecinku (nawet jeśli liczba ma tylko jednego miejsca po przecinku) jest użycie

yournumber.ToString("0.00"); 
9

dla tylko do wyświetlania, własność String mogą być wykorzystywane w następujący sposób ..

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

Używanie System.Math.Round. Ta wartość może być przypisana do innych lub zmanipulowana zgodnie z wymaganiami.

double value = 123.456789; 
System.Math.Round(value, 2); 
Powiązane problemy