Hậu tố khai báo cho kiểu thập phân


113

Nếu tôi muốn sử dụng một chữ thập phân trong mã, tôi đã thấy rằng có tồn tại hậu tố m (trong đó m là viết tắt của tiền). Điều này có phù hợp với bất kỳ số thập phân nào không hay có một phép gán tổng quát hơn (d là viết tắt của double, điều đó chắc chắn không phải là điều đúng mặc dù chuyển đổi trực tiếp được hỗ trợ).

object decimalValue=2m;

Xin lưu ý, tôi đã lấy phép gán đối tượng làm ví dụ, vì trong trường hợp của ...

decimal decimalValue=2;

... rõ ràng là 2 nên được hiểu là số thập phân thông qua trình biên dịch.

m có vẻ ổn, msdn sử dụng nó làm ví dụ cho kiểu thập phân.

Câu trả lời:


234

Tài liệu trong đặc tả ngôn ngữ C # , chương 2.4.4:

float f = 1.2f;
double d = 1.2d;
uint u = 2u;
long l = 2L;
ulong ul = 2UL;
decimal m = 2m;

Không có gì cho int, byte, sbyte, short, ushort.


Mặc dù không phải là hậu tố, chúng ta cũng có thể khai báo một ký tự bằng char c = 'a'cách sử dụng dấu nháy đơn xung quanh ký tự.
Kevin Hogg

Bạn cũng có thể tham khảo Doc này, đó là nhiều người dùng thân thiện: docs.microsoft.com/en-us/dotnet/csharp/language-reference/...
Douglas Gaskell

22

Không có hậu tố, một chữ số thực sẽ là một Double. Hậu tố m chỉ định rằng một ký tự thực số phải là một số thập phân.

Điều này thực sự quan trọng cần biết, vì số học trên các giá trị dấu chấm động (chẳng hạn như Double) là không chính xác. Ví dụ:

object decimalValue=(5.32 + 2.23);

Ở đây, decimalValue sẽ thực sự chứa Double, với giá trị không mong đợi là 7,5500000000000007! Nếu tôi muốn 7,55, tôi có thể làm như sau:

object decimalValue=(5.32m + 2.23m);

Để trả lời câu hỏi của bạn về việc liệu có một hậu tố tổng quát hơn hay không, m là hậu tố duy nhất cho Hệ thập phân trong C #. Nó có thể đại diện cho tiền như bạn đã đề cập, nhưng họ đã sử dụng thứ gì đó khác với d, vì nó được sử dụng bởi Double!

Đọc thêm: số thập phân (Tham khảo C #)


1
Cảm ơn, tôi đã xem và đặt liên kết msdn vào câu hỏi của tôi chính xác như bạn đã nhập câu trả lời của mình. Tuy nhiên, tôi chấp nhận bài đăng của Hans Passant vì có một danh sách tốt đẹp sẽ giúp ích rất nhiều cho những người sẽ đến bài đăng này vì các hậu tố. Nhưng cảm ơn dứt khoát.
HCL

0

Câu trả lời ngắn gọn cho Khai báo số thập phân trong C #

decimal firstMoney = 141.28m;

O / P: 141,28

decimal secondMoney = 100.00m;

O / P: 100

Để biết thêm, hãy tham khảo MSDN .

Hy vọng sẽ giúp ai đó.


@Thomas, tôi hiểu nhưng tôi chỉ cố gắng đưa ra câu trả lời ngắn gọn cho những người đang tìm kiếm khai báo số thập phân, tôi có nên xóa bài viết không? , bạn nghĩ rằng nó không hữu ích?
shaijut

3
Tôi thấy nó không hữu ích nhưng tôi còn lâu mới hoàn hảo và nó có thể giúp ích cho người khác. Nếu trong một giây đọc mà bạn thấy nó không hữu ích, thì bạn có thể xóa nó đi. Nếu bạn nghĩ rằng nó sẽ giúp ích cho ai đó, hãy để nguyên như vậy :)
Thomas Ayoub

2
@ThomasAyoub Cá nhân tôi không thấy điều này thêm gì mà câu trả lời của Hans chưa bao gồm.
Lankymart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.