Roh*_*ash 14 c# floating-point double types decimal
我在C#中遇到了这些数据类型的大小和最大值的混乱模式.
在使用Marshal.SizeOf()比较这些大小时,我发现以下结果 -
Float- 4 bytes,
Double - 8 bytes,
Decimal - 16 bytes
Run Code Online (Sandbox Code Playgroud)
当比较他们的MaxValues时,我得到了这样的结果,
Float- 340282346638528986604286022844204804240,
Double - 179769313486231680088648464220646842686668242844028646442228680066046004606080400844208228060084840044686866242482868202680268820402884062800406622428864666882406066422426822086680426404402040202424880224808280820888844286620802664406086660842040886824002682662666864246642840408646468824200860804260804068888,
Decimal - 79228162514264337593543950335
Run Code Online (Sandbox Code Playgroud)
我感到困惑的原因是,Decimal比Float和Double需要更多的非托管内存,但是不能包含比浮动更大的值.任何人都可以解释编译器的这种行为.谢谢.
| 归档时间: |
|
| 查看次数: |
43555 次 |
| 最近记录: |