0
 public class Invoice
    {
        public decimal Amount { get; set; }
    }

我知道M是十进制值的后缀

  public class Invoices
    {
        public void IdentityTest()  
        {
            Invoice firstInvoice = new Invoice();  
            firstInvoice.Amount = 0.0M;
        }    
    }

当您必须将 M 与您期望为十进制的值一起使用时,将类属性声明为十进制有什么意义?

4

3 回答 3

2

您需要告诉编译器文字的类型 - 推断它是不安全的,因为您可能想要使用文字的默认类型(double在这种情况下)。

如果两者之间存在隐式转换,这将起作用,但如果没有,则需要指定强制转换/转换。

于 2013-04-09T12:31:24.487 回答
0

如果您不使用后缀M,则文字将被视为双精度。假设您不想要双精度,这可能会导致编译器错误。

于 2013-04-09T12:32:25.867 回答
0

来自 MSDN:

如果没有后缀 m,则该数字被视为双精度数,从而产生编译器错误。

http://msdn.microsoft.com/en-us/library/364x0z75(v=vs.80).aspx

于 2013-04-09T12:32:33.300 回答