Câu trả lời:
Nó có nghĩa là nó là một chữ thập phân, như những người khác đã nói. Tuy nhiên, nguồn gốc có lẽ không phải là những người được đề xuất ở nơi khác trong câu trả lời này. Từ Tiêu chuẩn chú thích C # (phiên bản ECMA, không phải phiên bản MS):
Các
decimal
hậu tố là M / m từ D / d được đã được thực hiệndouble
. Mặc dù có ý kiến cho rằng M là viết tắt của tiền, Peter Golde nhớ lại rằng M được chọn đơn giản là bức thư hay nhất tiếp theodecimal
.
Một chú thích tương tự đề cập rằng các phiên bản đầu tiên của C # bao gồm "Y" và "S" cho byte
và short
chữ tương ứng. Chúng đã bị loại bỏ với lý do không thường xuyên hữu ích.
Từ thông số kỹ thuật của C #:
var f = 0f; // float
var d = 0d; // double
var m = 0m; // decimal (money)
var u = 0u; // unsigned int
var l = 0l; // long
var ul = 0ul; // unsigned long
Lưu ý rằng bạn có thể sử dụng ký hiệu viết hoa hoặc viết thường.
M đề cập đến ký tự không mơ hồ đầu tiên trong "thập phân". Nếu bạn không thêm nó, số sẽ được coi là gấp đôi.
D là gấp đôi.
0.42
thành số thập phân có thể cung cấp cho bạn một giá trị khác so với 0.42M
(và tương tự đối với việc sử dụng một chữ kép thay cho chữ nổi - float val = 423.3
cũng không thành công). Vì vậy, bạn đang chọn giữa một hành vi sai tinh tế và lỗi trình biên dịch mất nửa giây để khắc phục và tuân thủ các tiêu chuẩn CLR và C #.
Một nghĩa đen thực sự được thêm vào bởi M hoặc m là kiểu thập phân. Ví dụ, các chữ nghĩa 1m, 1,5m, 1e10m và 123.456M đều thuộc loại thập phân. Chữ này được chuyển đổi thành giá trị thập phân bằng cách lấy giá trị chính xác và, nếu cần, làm tròn đến giá trị đại diện gần nhất bằng cách sử dụng làm tròn của ngân hàng. Bất kỳ tỷ lệ rõ ràng nào trong chữ đều được bảo tồn trừ khi giá trị được làm tròn hoặc giá trị bằng 0 (trong trường hợp sau, dấu và tỷ lệ sẽ là 0). Do đó, chữ 2.900m sẽ được phân tích cú pháp để tạo thành số thập phân có ký hiệu 0, hệ số 2900 và tỷ lệ 3.
Chà, tôi đoán M đại diện cho lớp phủ. Số thập phân có thể được sử dụng để tiết kiệm tiền, nhưng điều đó không có nghĩa, số thập phân chỉ được sử dụng cho tiền.