负数的小数部分怎么表示

51次

问题描述:

负数的小数部分怎么表示希望能解答下

最佳答案

推荐答案

一个数的小数部分是指这个数减去不超过该数的最大整数,比如1.3的小数部分是0.3,所以-1.2的小数部分是-1.2-(-2)即0.8。

定义是一个汉语词语,拼音是dìng yì,英文是Definition,原指对事物做出的明确价值描述。负数是数学术语,比0小的数叫做负数,负数与正数表示意义相反的量。负数用负号(Minus Sign,即相当于减号)“-”和一个正数标记,如−2,代表的就是2的相反数。于是,任何正数前加上负号便成了负数。一个负数是其绝对值的相反数。一,负数的整数部分与小数部分的定义与正数的整数部分和小数部分的定义是一样的。二,一个小数,小数点是整数部分和小数部分的分界线。小数包括整数部分,小数部分和小数点。小数包括负数小数,实数小数和正数小数(分数)三种。三,-1.525中,-1是整数部分;525是小数部分;0.332中0属于整数部分;332属于小数部分;5.3255中5是整数别部分;3255属于小数部分。

其他答案

表示方法和正数的小数部分完全一样。负数的小数部分也分为十分位,百分位,千分位等。例如-1.34整数部分是1,十分位上的数字是3,百分上的数字是4。

其他答案

不管是什么数, 在计算机中最终都会被转化为 0 和 1 进行存储, 所以需要弄明白以下几点问题

一个小数如何转化为二进制

浮点数的二进制如何存储

浮点数的二进制表示

首先我们要了解浮点数二进制表示, 有以下两个原则:

整数部分对 2 取余然后逆序排列

小数部分乘 2 取整数部分, 然后顺序排列

0.1 的表示是什么?

我们继续按照浮点数的二进制表示来计算0.1 * 2 = 0.2 整数部分取 00.2 * 2 = 0.4 整数部分取 00.4 * 2 = 0.8 整数部分取 00.8 * 2 = 1.6 整数部分取 10.6 * 2 = 1.2 整数部分取 10.2 * 2 = 0.4 整数部分取 0…

所以你会发现, 0.1 的二进制表示是 0.00011001100110011001100110011……00110011 作为二进制小数的循环节不断的进行循环.

这就引出了一个问题, 你永远不能存下 0.1 的二进制, 即使你把全世界的硬盘都放在一起, 也存不下 0.1 的二进制小数.

浮点数的二进制存储

Python 和 C 一样, 采用

IEEE 754

规范来存储浮点数.

IEEE 754

对双精度浮点数的存储规范将 64 bit 分为 3 部分.

第 1 bit 位用来存储 符号, 决定这个数是正数还是负数

然后使用 11 bit 来存储指数部分

剩下的 52 bit 用来存储尾数Double-precision_floating-point_format

而且可以指出的是, double 能存储的数的个数是有限的, double 能代表的数必然不超过 2^64 个, 那么现实世界上有多少个小数呢? 无限个. 计算机能做的只能是一个接近这个小数的值, 是这个值在一定精度下与逻辑认为的值相等. 换句话说, 每个小数的存储(但是不是所有的), 都会伴有精度的丢失.

浮点数计算的问题

现在我们可以回顾你提出的问题

0.1 + 0.2 == 0.3

0.1 在计算机存储中真正的数字是 0.10000000000000000555111512312578270211815834045410156250.2 是

0.2000000000000000111022302462515654042363166809082031250.3 是

0.299999999999999988897769753748434595763683319091796875

这就是为什么 0.1 + 0.2 != 0.3 的原因

至于 1.1 + 2.2 与之类似。

为你推荐