我在 C# 中遇到了这些数据类型的大小和最大值的令人困惑的模式。
在使用 Marshal.SizeOf() 比较这些大小时,我发现了以下结果 -
Float- 4 bytes,
Double - 8 bytes,
Decimal - 16 bytes
当比较他们的 MaxValues 时,我得到这样的结果,
Float- 340282346638528986604286022844204804240,
Double - 179769313486231680088648464220646842686668242844028646442228680066046004606080400844208228060084840044686866242482868202680268820402884062800406622428864666882406066422426822086680426404402040202424880224808280820888844286620802664406086660842040886824002682662666864246642840408646468824200860804260804068888,
Decimal - 79228162514264337593543950335
我感到困惑的原因是,Decimal 比 Float 和 Double 占用更多的非托管内存,但甚至无法包含比 float 更大的值。
谁能解释一下编译器的这种行为。
谢谢。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)