当前位置: 首页 > 网络应用技术

多少位Python浮点(2023年的最新答案)

时间:2023-03-06 15:42:58 网络应用技术

  简介:今天,首席执行官指出,要与您分享python浮动点数的数字。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  在计算机的硬件中,浮点数由二进制小数表示。

  [python]查看普通副本

  0.125

  您可以看到1/10+2/100+5/1000,就像二进制十进制的方式相同

  [python]查看普通副本

  0.001

  您可以看到0/2+0/4+1/8。

  这两个小数的实际值是相同的。唯一的区别是0.125是十进制表示,而0.001是二进制表示。不幸的是,大多数小数无法通过二进制小数准确地表示,您输入的小数浮点数只能由二进制表示,只能用二进制表示。存储在机器中的浮点。不管您使用多少二进制数,小数0.1不能准确地用二进制十进制代表。这是一个无限的重复小数小数

  [python]查看普通副本

  0.000110011001111001100110011001100110011001110011 ...

  在运行Python的典型计算机中,浮点数的准确性为53位,因此小数为0.1将以以下形式存储

  [python]查看普通副本

  0.0001100110011001100110011001110011001100111101010

  实际上,我们很容易忘记存储存储的数据是原始十进制的近似。

  [python]查看普通副本

  0.10000000000005555115123125780211815834541015625

  这些数字中的大多数不会被人们使用,因此Python仅显示其四所房屋和五个入口的价值

  [python]查看普通副本

  0.1

  在实际情况下,有许多这样的例子可以解释:

  [python]查看普通副本

  0.1+0.2

  0.300000000000004

  [python]查看普通副本

  回合(2.675,2)

  2.67

  您可以使用小数模块查看准确的浮点的值。

  [python]查看普通副本

  从小数进口小数

  十进制(2.675)

  小数('2.674999999999999982364316059749495321893310546875')))

  这主要是因为浮点的数量实际上保留在计算机中的计算机中,有些则不准确。

  0.1是十进制。被转变为二进制后,它是无限数量的循环:

  0.0001100110011001100110011100111001110011001100110011001100.SesseSsessenceSessessence

  Python保留了双准确度(64)位,并且将切断额外的位,因此您可以看到0.1,但是计算机上的实际保留不准确0.1。

  一些小数是理性的,在转换为二进制后的64位以内,因此精确保存在计算机上。在这些小数参与其中之后,结果通常将非常准确,您不会说。

  浮点的数量非常复杂。这些也是我以前检查信息的记录。您可以自己去Google。

  只有一种类型的Python本机浮点,称为float,大小为24个字节(我在这里是python3.6,其他版本尚不清楚),这是双重准确性(您播放了一个特别长的小数号,最后,最后一个版本最终它将为您邀请您有效的15-16位,这是双精度浮点数的典型功能),无论浮点数有多短

  Python与其他语言不同。每个变量都是一个对象,并且对象具有各种混合属性方法,因此内存职比其他语言要大得多

  如果您想占据较小的内存并使用单个精度的需求,建议使用第三方库(例如Numpy)来提供可变类型大小的控制。

  这是浮点误差。由于计算机使用32位来指示浮点的数量,其准确性受到限制。十进制十进制7.77时(因为相应的二进制十进制为无限长),它将变得较小。

  01

  “将Python中浮点数的操作精度的准确性限制为32位?”

  为什么问这样一个奇怪的问题。存在是合理的~~

  提出此问题的原因是,当使用Python在32位MCU上模拟程序时,两者的结果是不同的。

  区别在于这一观点,我将找到一种挖掘方法的方法。确定其他可能性的所有可能性,即计算准确性的影响。

  MCU的浮动点操作单元为32位,而Python的默认浮点操作为64位(安装64位安装程序包)

  浮动点操作的结果如下:

  32位浮动点的有效数据位为7位,而上述计算结果显然超过7位。

  02

  差异已经很明显,因此如何消除这种差异~~

  选项一:

  使用Round()控制准确性。

  不,单个精度和双准确浮点 - 点操作之间的差异超过一个弹性功能,并且有超过800 ~~

  选项II:

  使用小数模块

  这仍然是我的学习计划~~

  第三个解决方案:

  stackoverflow.com

  问题解决了~~

  03

  使用Numpy模块中的Float32完美解决此问题。

  例如~~

  结尾

  浮点是数据类型。

  浮动 - 点数据类型,浮点数据类型用于存储单个精度浮动 - 点或双 - 精确浮点-Point Numbers.Poploating Point数字使用IEEE(电气和电子工程师协会)格式。浮动的单个精度值 - 点类型有4个字节,包括一个符号,一个8位二进制索引和一个23位尾巴。

  由于尾巴的高水平顺序始终为1,因此不以数字形式存储。此形式提供约-3.4e+38?3.4e+38的范围。

  扩展信息:

  相关用法

  存储的尾部数量大于或等于1,小于2。对于浮动和双重类型,有一个隐式前指南1处于最大有效位置。这样,即使最大有效位永远不会存储在内存中,尾巴的数量实际上是24和53。

  浮动 - 点包可以将二进制浮点数存储为非标准数字,而无需使用刚刚引入的存储方法。“非标准数字”是无-Zero -Zero -Zero -Zero -Zero -Zero -Zero -Zero -Zero -Zero -Zero -lodling点,其保留索引值是该值的最高有效位,其中最高有效位尾号为0。

  通过使用非标准格式,可以扩展浮动点号的范围,但精度将丢失。您无法控制标准化或非标准化形式形式的浮动点数量;浮动 - 点软件包确定表示形式。

  用法

  如果存储比准确性更重要,请考虑使用浮动类型进行浮动 - 点变量。instead,如果准确性是最重要的条件,请使用双重类型。

  浮动 - 点变量可以增加到更大的基本类型(从浮点类型到双重类型)。当您在浮动时执行算术 - 点变量时,它通常会改善。此算术始终以与变量相同的高精度,与该变量相同最高精度。例如,请考虑以下类型声明:

  float f_short;双f_long;长f_longer;f_short = f_short * f_long;

  在上一个示例中,变量f_short被升级为双重型,并乘以f_long;然后,将结果给出到float类型,然后给予f_short。

  参考信息来源:Baidu百科全书流动

  结论:以上是首席CTO注释为每个人编制的Python浮动点的所有内容。感谢您阅读本网站的内容。我希望它对您有所帮助。