小数,整数,铸造......哦,我的!

Pet*_*ete 3 .net c# integer casting decimal

我正在阅读"Head First C#"一书,在其中一章我创建了一个程序,并使用声明为整数和小数的变量.Visual Studio对我进行了几次关于混合和匹配两者的问题.例如:

dinnerParty.NumberOfPeople = (int) numericUpDown1.Value;
Run Code Online (Sandbox Code Playgroud)

NumberOfPeople被声明为int,显然数字更新是小数.

此外,当将这些数字添加到一起时,该书会将M放在一些数字之后.例如:

public void SetHealthyOption(bool healthy)
{
    if (healthy)
    {
        CostOfBeveragesPerPerson = 5.00M;
    }
    else
    {
        CostOfBeveragesPerPerson = 20.00M;
    }
}
Run Code Online (Sandbox Code Playgroud)

CostOfBeveragesPerPerson声明为小数.

所以我有两个具体问题:

1)你怎么知道什么时候需要施展什么?我敢肯定有很多东西可以铸造......有人能提供一些很好的链接来学习铸造吗?

2)数字后的M是什么?

编辑

所以M表示该数字是小数而不是双数.为什么不直接将数字转换为十进制数:(十进制)50.00?什么是"功能"叫什么?如果我想看看哪些"信件"可用,我会谷歌?

Tur*_*nor 6

  1. 当两种类型之间的精度损失时,通常需要显式转换.例如,如果你有一个int并将它分配给long,则不需要强制转换,因为long可以保存int可以包含的所有值.但是,如果要为int分配long,则需要进行强制转换,因为int可以保存的值少于long can,这可能会导致数据丢失.
  2. M将数字定义为Decimal类型.如果省略,则将数字解释为double.