C#中decimal的大小是多少?

17

对于小数类型的大小不清楚。像SQL Server一样,字节大小是否随精度变化?C#类型“decimal”的精度是否可变?

我不想打开不安全代码,只是为了调用小数类型的sizeof。你会怎样处理这个问题?

4个回答

24

decimal 关键字表示一个128位的数据类型。

来源:MSDN


是的,loband看起来很不错。 对于我的基本问题,现在似乎用decimal替换float并不高效,因为这是从32位到128位的变化。我正在处理高速仪器数据采集。 - P a u l
又一个赞成使用低带宽的人...当然,得到正确答案也很有帮助;-p - Marc Gravell
嘿,看起来每个人都有宽带了 :( 除了你不知道的带宽问题 :p,页面看起来好多了 :) - Mehrdad Afshari
我同意。LoBand版本更加舒适阅读。 - Tormod Fjeldskår
破解。可惜其中的链接没有保持低带宽性能。我仍然有一个抱负,就是找到一种更好的方法来为Stack Overflow查找MSDN链接。 - Jon Skeet
页面右上角有一个链接,可以选择“保持低带宽视图”。 - Gary.Ray

23

正如其他人所说,decimal 总是16个字节(128位)。 decimal 的精度始终为28/29位数字。 它是一种浮点类型,不像SQL的 DECIMAL 类型。 有关更多详细信息,请参见我的文章


3
如果您点击链接并阅读文章,这绝对是最好的答案。MSDN没有解释它是如何存储的,这在主要参考来源上确实是必需的。 - Tony Wall

5

.NET Framework 中 System.Decimal 的大小固定为 16 字节。


1

128位精确小数值,具有28-29个有效数字, 128位=16字节


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接