2009-05-27 39 views
19

Nếu ai đó có thể giải thích cho tôi sự khác biệt giữa thập phân và thập phân trong C# sẽ tuyệt vời.Sự khác biệt giữa số thập phân và số thập phân

Trong thời trang tổng quát hơn, sự khác biệt giữa cấu trúc chữ thường như số thập phân, int, chuỗi và lớp chữ thường là Thập phân, Int32, Chuỗi.

Sự khác biệt duy nhất là các lớp chữ hoa cũng bao hàm các chức năng (như Decimal.Divide())?

Trả lời

39

Chúng giống nhau. Kiểu thập phân là một bí danh cho System.Decimal.

Vì vậy, về cơ bản thập phân cũng giống như thập phân. Nó tùy thuộc vào sở thích của người dùng mà người dùng sử dụng nhưng hầu hết thích sử dụng int và string vì chúng dễ dàng nhập và quen thuộc hơn với các lập trình viên C++.

+1

Nếu chúng giống hệt nhau, tại sao chúng ta có cả hai? Tại sao không chỉ một trong số họ? –

+0

số thập phân là phiên bản C# cụ thể của kiểu .NET System.Decimal - vì nó chỉ là một bí danh của nó. – Nate

+0

Tuyệt vời! Cảm ơn các bạn! –

0

số thập phân, int, chuỗi là tất cả ký hiệu viết tay ngắn để giúp mọi thứ dễ dàng hơn/đẹp hơn cho bạn. Khuôn khổ này thực sự không biết "thập phân" là gì, nhưng nó không biết System.Decimal, vì vậy khi bạn biên dịch mã của bạn, thập phân chỉ biến thành System.Decimal. Hãy thử xem xét một số mã mà tất cả các loại đều đủ điều kiện, sau đó thử xem một số mã mà các bí danh được sử dụng, tôi nghĩ hầu hết các lập trình viên sẽ thích các bí danh nhỏ gọn hơn và cảm nhận nó dễ đọc hơn. Tôi cũng nghĩ rằng nó có thể là một trở lại với C/C++ để làm cho việc chuyển đổi dễ dàng hơn.

1

built-in C# types không phải là tất cả các cấu trúc *. Chúng là bí danh cho các kiểu được xác định trước trong không gian tên System. Chúng theo nghĩa đen là giống nhau theo mọi cách except formatting. Các loại bí danh là chữ thường và được định dạng như từ khóa (màu xanh đậm). Các kiểu Hệ thống là PascalCased và được định dạng giống như các loại (màu lam nhạt).


* objectstring là lớp

+0

Các kiểu C# được tích hợp sẵn (int, double, và vân vân) _are_ structs. –

+0

Cảm ơn Eric, tôi đã rời bỏ bộ não của mình ở nhà vì điều đó. –

2

Như C# là một ngôn ngữ .NET, tất cả các loại phải ánh xạ đến một Loại .NET Framework.

Để trả lời câu hỏi đầu tiên của bạn, thập phân là một Bí danh của loại System.Decimal .NET Framework. Chúng có thể được sử dụng thay thế cho nhau.

Để trả lời câu hỏi thứ hai của bạn, cả thập phân và thập phân phải mở rộng các hàm giống nhau, bao gồm cả từ biến được tạo và từ "Cấu trúc" của chính loại giá trị đó.

decimal FirstDec = 12; 
Decimal SecondDec = 13; 
decimal ThirdDec = decimal.Ceiling(FirstDec, SecondDec); 
Decimal FourthDec = Decimal.Floor(ThirdDec); 
bool isEqual = FirstDec.Equals(SecondDec) && FourthDec.Equals(ThirdDec); 

MSDN Page for Built-In Types sau đây sẽ cho bạn biết System.ValueType từng bí danh bản đồ nào. Và đối với Decimaldecimal cụ thể, bạn có thể tham chiếu số MSDN Page for Decimal này.

Các vấn đề liên quan