当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《为什么c#中的十进制与其他c#类型不同?》经验,为你挑选了2个好方法。

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



1> Marc Gravell..:

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

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

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



2> Corbin March..:

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

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

也可以看看:

十进制与双速

http://software.intel.com/en-us/blogs/2008/03/06/intel-decimal-floating-point-math-library/

http://grouper.ieee.org/groups/754/

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有