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

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

Tôi chỉ nhận được hai chữ số thập phân nhưng bằng cách sử dụng mã này, tôi nhận được 1156.547. Cho tôi biết tôi phải sử dụng định dạng nào để hiển thị hai chữ số thập phân.Hai vị trí thập phân bằng C#

+0

Math.Round sẽ hoạt động và thậm chí mã của bạn sẽ hoạt động. Tôi đã thử nghiệm với mã của bạn và nó hoạt động tốt decimal Debitvalue = Convert.ToDecimal ("1156.547"); số thập phân DEBITAMT = Convert.ToDecimal (string.Format ("{0: 0.00}", Debitvalue)); Console.WriteLine (DEBITAMT); – Anand

+0

Vâng, chính xác, cảm ơn! –

Trả lời

27

Nếu bạn muốn làm tròn các số thập phân, nhìn vào Math.Round()

+4

tại sao không phải là Convert.ToDecimal (string.Format ("{0: F2}", Debitvalue)) ;, khi chúng tôi đã sử dụng convert.todecimal trong mã. – Dragon

+4

@ Dragon - bởi vì chuyển đổi một số thành một chuỗi và quay lại một số là một mã-mùi. – cjk

+1

ooh kk .. sau đó tôi sẽ sử dụng như thế này Math.round (Convert.todecimal (val), 2) .. – Dragon

39

Sử dụng Math.Round() để làm tròn đến hai chữ số thập phân

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

đây là một cách tiếp cận

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

Câu hỏi của bạn là yêu cầu để hiển thị hai chữ số thập phân. Sử dụng String.format sau đây sẽ giúp:

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

số này sẽ hiển thị sau đó chỉ có hai chữ số thập phân.

Hoặc nếu bạn muốn các biểu tượng tiền tệ hiển thị sử dụng như sau:

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

Thực ra, định dạng trong phần đầu tiên sẽ là "{0: .00}", nếu anh muốn 2,10 hiển thị. Với ## nó sẽ là 2.1. – SvendK

+0

cái này không thực sự hiệu quả. nó sẽ tròn 4.998 đến 5 nhưng OP muốn có 2 số thập phân là 4.99 – batmaci

15

tôi sử dụng

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

Một cách khác:

decimal.Round (decimalvalue, 2, MidpointRounding.AwayFromZero);

2

Có lẽ một biến thể của các ví dụ khác, nhưng tôi sử dụng phương pháp này cũng để đảm bảo một dấu chấm được hiển thị trước khi chữ số thập phân và không phải là một dấu phẩy:

someValue.ToString ("0,00", CultureInfo.InvariantCulture)

8

cách tiếp cận tốt nhất nếu bạn muốn luôn hiển thị hai chữ số thập phân (thậm chí nếu số của bạn chỉ có một nơi thập phân) là sử dụng

yournumber.ToString("0.00"); 
9

Đối với chỉ để hiển thị, tài sản của String có thể được sử dụng như sau ..

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

Sử dụng System.Math.Round. Giá trị này có thể được gán cho người khác hoặc được điều chỉnh theo yêu cầu ..

double value = 123.456789; 
System.Math.Round(value, 2); 
Các vấn đề liên quan