(在尝试分析其decimal
工作原理时)&& 在阅读了@jonskeet 文章 并查看了 msdn并思考了过去 4 小时后,
我有一些问题:
在这个链接中,他们说的很简单:
1.5 x 10^2
有2
重要数字
1.50 x 10^2
有3
重要数字。
1.500 x 10^2
有4
重要数字等...
好的...我们明白了。
来自乔恩的文章:
sign * mantissa / 10^exponent
像往常一样,符号只有一位,但有 96 位尾数和 5 位指数
^ _ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ ^^^^^
1 _ 96 5
好的
所以 max mantiss val =2^96-1 = 79228162514264337593543950335
这是:(7.9228162514264*10^28
根据我的 iphone ......在 windows calc 中看不到指数表示。)
注意 :
7.9228162514264*10^28
有14位有效数字(根据上面的例子)
现在指数中 5 位的部分无关紧要,因为它在分母中- 所以我需要 2^0 的 min val
问题 #1:
msdn 说: 28-29 significant digits
但根据我的样本(1.500 x 10^2
有4
有效数字),他们有2 个 有效数字,即7.9
(7 和 9)。
如果 msdn 会写:
±79228162514264337593543950335 × 10^0
我会理解这一点,因为所有有效数字都在表达式中。
为什么他们写 28-29 但显示 2 ?
问题2 :
值 0.5 将如何显示十进制表示(螳螂 && 指数)?
最大分母可以是2^32-1 --> 31
多谢你们。
问题 #3:
1+96+5 = 102 位。
msdn 说:
decimal 关键字表示 128 位数据类型。
128-102 = 26
可以从文章中了解为什么没有使用那些 26 位