十进制和十进制之间的差异

时间:2009-05-27 14:12:09

标签: c# class

如果有人能向我解释C#中十进制和​​十进制之间的区别,那就太棒了。

以更一般的方式,小写结构如decimal,int,string和大写类Decimal,Int32,String之间有什么区别。

大写类是否也包装函数(如Decimal.Divide())的唯一区别是什么?

5 个答案:

答案 0 :(得分:44)

他们是一样的。十进制类型是System.Decimal的别名。

所以基本上十进制和Decimal是一样的。这取决于用户的偏好使用哪个,但大多数人更喜欢使用int和string,因为它们更容易键入,更熟悉C ++程序员。

答案 1 :(得分:3)

由于C#是.NET语言,因此所有类型都必须映射到.NET Framework类型。

要回答您的第一个问题,decimal是System.Decimal .NET Framework类型的别名。它们可以互换使用。

要回答第二个问题,Decimal和decimal都应该扩展相同的函数,包括创建的变量和值类型本身的“Structure”。

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会向您显示每个别名映射到的System.ValueType。对于Decimaldecimal,您可以参考此MSDN Page for Decimal

答案 2 :(得分:1)

built-in C# types并非所有结构*。它们是System命名空间中预定义类型的别名。它们在所有方面都是相同的except formatting。别名类型为小写,格式类似于关键字(深蓝色)。系统类型是PascalCased,格式类似(浅蓝色)。


* objectstring是类

答案 3 :(得分:0)

decimal,int,string都只是简单的符号,让你的事情变得更轻松/更漂亮。框架并不真正知道“十进制”是什么,但它确实知道System.Decimal,因此当您编译代码时,十进制只会变成System.Decimal。尝试查看一些代码,其中所有类型都是完全限定的,然后尝试查看使用别名的一些代码,我认为大多数程序员会更喜欢更紧凑的别名并认为它更容易阅读。我也认为这可能是回归C / C ++以使转换变得更容易。

答案 4 :(得分:0)

如果没有C#区分大小写,有些人会像在Cobol和VB中那样编写所有大写的应用程序。这将使开发人员无法读取代码并进行维护。区分大小写是设计人员努力帮助提高语言可用性。