为什么c#中的十进制与其他c#类型不同?

suh*_*air 8 c#

我被告知十进制是作为用户定义的类型实现的,其他c#类型如int有专门的操作码.这背后的原因是什么?

Mar*_*ell 11

decimal并不孤单 DateTime,TimeSpan,Guid,等也自定义类型.我猜主要原因是它们没有映射到CPU灵长类动物.float(IEEE 754)int等在这​​里非常普遍,但是decimal对.NET来说是定制的.

如果您想通过反射直接与操作员交谈(因为它们不存在于int等),这只会导致问题.我想不出你注意到差异的任何其他情况.

(实际上,仍有结构等来表示人-他们只是最缺乏的你可能会想到什么是他们,如运营商)


Cor*_*rch 6

"这背后的原因是什么?"

十进制数学在软件与硬件之间处理.目前,许多处理器不支持原始十进制(金融小数与浮点数)数学.随着IEEE 754R的采用,这种情况正在发生变化.

也可以看看: