加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

小数在c#误解?

发布时间:2020-12-15 06:46:51 所属栏目:百科 来源:网络整理
导读:(同时尝试分析小数如何工作)阅读 @jonskeet article后看到 msdn,并思考过去4个小时, 我有一些疑问 : 在this link他们说的很简单: 1.5 x 10 ^ 2有2个有效数字 1.50 x 10 ^ 2有3个有效数字. 1.500 x 10 ^ 2有4个重要数字等… 好的,我们得到这个想法. 从jon的
(同时尝试分析小数如何工作)&&阅读 @jonskeet article后看到 msdn,并思考过去4个小时,
我有一些疑问 :

在this link他们说的很简单:

1.5 x 10 ^ 2有2个有效数字

1.50 x 10 ^ 2有3个有效数字.

1.500 x 10 ^ 2有4个重要数字等…

好的,我们得到这个想法.

从jon的文章:

sign * mantissa / 10^exponent

As usual,the sign is just a single bit,but there are 96 bits of
mantissa and 5 bits of exponent

^ _ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ ^^^^^

 1 _                     96                         5

所以最大mantiss val = 2 ^ 96-1 = 79228162514264337593543950335哪个是:7.9228162514264 * 10 ^ 28(根据我的iphone …不能看到窗口计算中的指数表示)

注意 :

7.9228162514264 * 10 ^ 28有14个有效数字(根据上面的例子)

现在在指数中有5位的部分是无关紧要的,因为它在分母中 – 所以我需要最小值为2 ^ 0

问题#1:

msdn说:28-29有效数字

但根据我的样本(1.500 x 10 ^ 2有4个有效数字),它们有2个有效数字,为7.9(7和9).

如果msdn会写:

±79228162514264337593543950335 × 10^0

我会明白这一点,因为所有有效数字都在表达中.

为什么他们写28-29但显示2?

问题#2:

将为值0.5显示十进制表示(mantiss&&& exponent)?

最大分母可以是2 ^ 32-1→ 31

多谢你们.

问题3:

1 96 5 = 102位.

msdn说:

The decimal keyword denotes a 128-bit data type.

128-102 = 26

可能没有从文章为什么没有使用这26位

解决方法

他们给出的范围只有两个有效数字,但分别指定精度.这就是为什么范围被列为“近似范围”的原因.

0.5的十进制表示将是5的尾数和1的指数(其在正义方面被反映,即它实际上是-1).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读