15
嘿,所有,快速的问题:如何在内存中的二进制代码的.NET decimal
?.NET十进制的二进制表示形式
我们都知道浮点数是如何存储和正是如此的原因及其不准确的,但我不能找到除了以下有关的任何信息decimal
:
- 显然超过浮点精确点号码
- 注意到的存储器128位
- 2^96 +符号范围
- 28(有时29?)的数量总显著数字
有什么办法可以解决这个问题吗?我的计算机科学家要求答案,经过一个小时的尝试研究,我找不到它。看起来好像有很多浪费的东西,或者我只是想象着我脑海中的错误。任何人都可以对此有所了解吗?谢谢。
+1奇妙的答案,正确的重点和丰富的信息。 – JoshD 2010-09-27 06:15:53
@Jacob:不,那*显然*不是真的。考虑到你可以从一个整数开始并以0.1结束,那显然是正确的。如果你只能*转移到左边,你可以代表10,100等 - 但不是0.1,0.01等等。将来,请等待一个“ack”,然后再改变答案的含义。请参阅'decimal'的文档:http://msdn.microsoft.com/en-us/library/1k2e8atx.aspx - 其中缩放因子被称为“分割”整数,相当于将其转换为对。 – 2013-02-13 06:45:11
我的歉意。对我来说,更直观地把它看作是将*小数点*移到*左*,但我现在看到你指的是“移位”尾数。 – Jacob 2013-02-13 15:59:32