在C#中使用结构体来表示简单的域值

1 .net c# dns struct

我正在编写一个财务应用程序,其中"价格"的概念被大量使用.它目前由C#decimal类型表示.我想让它更明确,并且能够将其更改double为将来,所以我想创建一个'Price'结构,它基本上与十进制类型完全相同(可能会添加一些验证,如必须大于0).

您认为这样做的利弊是什么?

Jon*_*upp 5

不要使用双倍的钱.您必须记住将其四舍五入以便您使用它的任何地方进行显示,如果您除以或乘以大数字,则可能会出现准确性问题.十进制将给出溢出错误,双重将失去准确性.我不确定你,但有钱,我更喜欢错误和中止操作,默默地继续进行准确性的降低.

如果有的话,基于我一直在进行的项目,您可能需要考虑使用具有小数的结构以及它是什么货币的一些指示.