2011-02-06 67 views
5

Tôi có một giá trị kép. Tôi muốn định dạng giá trị này theo định dạng x.yz. Làm thế nào để tôi làm điều này? Tôi tiếp tục nhận được chữ số cắt ngắn. Ai đó có thể cho tôi biết làm thế nào để làm điều này trong C#?Định dạng kép trong C#

Cảm ơn!

+2

'myDouble.ToString (" 0,00 ");'? –

+0

Bạn có thể cung cấp ví dụ cụ thể hơn hay không, cộng với kiểm tra các câu hỏi được liên kết ở bên phải của trang trong phần "Có liên quan". – ChrisF

+0

@ Jeff M - Cảm ơn! Tôi nghĩ số 0 có nghĩa là số không sẽ được hiển thị. – user70192

Trả lời

5

Sử dụng định dạng chuỗi được giải thích trong:

Ví dụ, hãy thử:

  • (0.56789).ToString("F2")
  • (0.56789).ToString("0.00").

Lưu ý rằng giá trị kết quả là KHÔNG cắt ngắn, nhưng được làm tròn trong cả hai trường hợp, dẫn đến "0.57".

2

thử một cái gì đó như thế này, sử dụng ToString?

doubleNumber = -1898300.1937; 
Console.WriteLine(doubleNumber.ToString("F2", CultureInfo.InvariantCulture)); 
// Displays -1898300.19 
9

chữ số sau dấu thập phân

Ví dụ này định dạng kép để chuỗi với số lượng cố định các chữ số thập phân. Đối với hai chữ số thập phân, hãy sử dụng mẫu „0.00“. Nếu một số phao có ít chữ số thập phân, các chữ số còn lại ở bên phải sẽ là số 0. Nếu nó có nhiều chữ số thập phân, số sẽ được làm tròn.

// 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" 

Ví dụ tiếp theo định dạng kép thành chuỗi có số chữ số thập phân. Ví dụ. cho hai chữ số thập phân tối đa sử dụng mẫu „0. ##“.

// max. two decimal places 
String.Format("{0:0.##}", 123.4567);  // "123.46" 
String.Format("{0:0.##}", 123.4);   // "123.4" 
String.Format("{0:0.##}", 123.0);   // "123" 

chữ số trước dấu thập phân

Nếu bạn muốn có một số float có bất kỳ số lượng tối thiểu của các chữ số trước khi sử dụng điểm thập phân N-lần zero trước dấu thập phân. Ví dụ. pattern „00.0“ định dạng một số float thành chuỗi có ít nhất hai chữ số trước dấu thập phân và một chữ số sau đó.

// at least two digits before decimal point 
String.Format("{0:00.0}", 123.4567);  // "123.5" 
String.Format("{0:00.0}", 23.4567);  // "23.5" 
String.Format("{0:00.0}", 3.4567);  // "03.5" 
String.Format("{0:00.0}", -3.4567);  // "-03.5" 

giới ngàn được

Để định dạng kép để chuỗi với việc sử dụng hàng ngàn tách sử dụng không và dấu phẩy phân cách trước khi một phao thông thường định dạng mô hình, ví dụ pattern „0,0.0“ định dạng số để sử dụng hàng nghìn dấu tách và có một chữ số thập phân.

String.Format("{0:0,0.0}", 12345.67);  // "12,345.7" 
String.Format("{0:0,0}", 12345.67);  // "12,346" 

Zero,

số nổi giữa không và ai có thể được định dạng theo hai cách, có hoặc không có hàng đầu zero trước dấu thập phân. Để định dạng số mà không sử dụng số 0 đứng đầu trước điểm. Ví dụ „# .0“ định dạng số để có một chữ số thập phân và 0 đến N chữ số trước dấu thập phân (ví dụ: „.5“ hoặc „123.5“).

Mã sau cho biết cách có thể được định dạng bằng không (thuộc loại đôi).

String.Format("{0:0.0}", 0.0);   // "0.0" 
String.Format("{0:0.#}", 0.0);   // "0" 
String.Format("{0:#.0}", 0.0);   // ".0" 
String.Format("{0:#.#}", 0.0);   // "" 

số Align với không gian

Để sắp xếp số float đến việc sử dụng dấu phẩy đúng “” tùy chọn trước dấu hai chấm. Nhập dấu phẩy theo sau là một số khoảng trắng, ví dụ: „0,10: 0,0“ (điều này chỉ có thể được sử dụng trong phương thức String.Format, không phải trong phương thức doubleToTo). Để căn chỉnh số sang bên trái, hãy sử dụng số lượng khoảng trắng âm.

String.Format("{0,10:0.0}", 123.4567); // "  123.5" 
String.Format("{0,-10:0.0}", 123.4567); // "123.5  " 
String.Format("{0,10:0.0}", -123.4567); // " -123.5" 
String.Format("{0,-10:0.0}", -123.4567); // "-123.5 " 

Tuỳ chỉnh định dạng cho số âm và zero

Nếu bạn cần sử dụng định dạng tùy chỉnh cho số phao tiêu cực hay không, sử dụng dấu phân cách dấu chấm phẩy “;” để tách mẫu để ba phần. Phần đầu tiên định dạng số dương, phần thứ hai định dạng số âm và phần thứ ba định dạng số không. Nếu bạn bỏ qua phần cuối cùng, số không sẽ được định dạng bằng phần đầu tiên.

String.Format("{0:0.00;minus 0.00;zero}", 123.4567); // "123.46" 
String.Format("{0:0.00;minus 0.00;zero}", -123.4567); // "minus 123.46" 
String.Format("{0:0.00;minus 0.00;zero}", 0.0);  // "zero" 

http://www.csharp-examples.net/string-format-double/

0

Tôi đang sử dụng Math.Round Method

Math.Round(yourdouble, 2) 

Bạn cũng có thể chỉ định các quy tắc làm tròn.