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

Python的准确性是什么?

时间:2023-03-05 16:32:39 网络应用技术

  本文将讨论Python的准确性和相应的知识点。我希望这对您有帮助。不要忘记收集此网站。

  本文目录清单:

  1.如何在Python中保留两个小数?2. Python如何控制输出的大小?3。Python的浮点数是否被视为准确性的问题。4. python dual -Crecision浮点是什么?

  圆(A,2)'%。2f'%aDecimal('5.000')。量化(十进制('0.00'))

  当输出的结果需要两个数字时,字符串形式:'%。2f'%a是最好的,其次是十进制。

  笔记:

  1.它可以传递给十进制整数或字符串参数,但是它不能是浮动 - 点数据,因为浮动 - 点数据本身不准确。

  2.十进制也可以用于限制数据总数。

  谈论Python中小数点精度控制的问题

  根据

  浮点数由机器上的浮点数的双重精度(64位)表示。提供从-308到308的索引从-308到308。与C语言的双重类型相同。Python不支持32位的单个精度浮点数。如果程序需要准确控制间隔和数字精度,则可以考虑使用Numpy扩展库。

  python 3.x默认为浮动点号的17位数字的准确性。

  单一精确和双重精度的流行解释:

  单个精度类型和双重编织类型,其类型描述符号是浮点精度描述,双重二 - 精确描述符号。IS是3.4E-38 ~3.4E+38,只能提供七个有效的数字。双准确量帐户为8个字节(64位)内存空间,其数值范围为1.7e-308 ~1.7e+308,它可以提供16位的有效数字。

  相关教程建议:上面的Python视频教程是如何保留Python中两个小数的详细内容。我希望这对每个人都会有所帮助。有关Python教程的更多信息,请注意有关全球Aoki的其他相关文章!

  Python小数点长度精度控制方法:

  1.较小的精度

  以高精度将浮动点的浮点数转换为浮点数低。

  1.Round()构建-in方法

  这是最常用的。我刚刚阅读了round()使用()使用的说明,并且不容易理解。Round()不是处理这四座房屋的简单方法。

  对于建筑类型聚会

  最接近10的功率减去ndigits;如果两个倍数平等

  近距离,舍入偶数选择(因此,对于Exmple,两轮(0.5)

  圆(-0.5)为0,圆(1.5)为2)。

  回合(2.5)

  2

  (1.5)

  2

  回合(2.675)

  3

  回合(2.675,2)

  2.67

  round()如果只有一个数字作为参数,则当数字未指定数字时,它将返回整数和最接近整数(这类似于四个房屋和五个输入)。但是,当.5出现时,两侧之间的距离是相同的,圆形()取得了更近的数字,这就是为什么round(2.5)的原因(2.5)

  =

  2.通常使用指定选择的小数点时,还使用四座房屋的规则,但是当遇到情况时,如果选择在选择之前的小树是一个奇怪的数字,它将是直接丢弃。查看以下示例:

  回合(2.635,2)

  2.63

  回合(2.645,2)

  2.65

  回合(2.655,2)

  2.65

  回合(2.665,2)

  2.67

  回合(2.675,2)

  2.67

  2.使用格式

  效果与圆形()相同。

  a =(“%.2F”%2.635)

  A

  '2.63'

  a =(“%.2F”%2.645)

  A

  '2.65'

  a = int(2.5)

  A

  2

  2.分析超过17位数字的准确性

  Python的默认值是17个小数的准确性,但是这里存在一个问题:当我们的计算需要使用更高的精度(超过17位数字)时,我该怎么办?

  1.使用格式(不建议)

  a =“%.30f”%(1/3)

  A

  '0.333333333333333148296256247'

  它可以显示,但不准确,随后的数字通常毫无意义。

  2.使用高精度的十进制模块,使用GetContext

  从小数进口 *

  打印(getContext()))

  context(prec = 28,randing = rand_half_even,emin = -999999,emax = 999999,

  Capitals = 1,夹具= 0,flags = [],陷阱= [InvalidOperation,Distifbyzero,

  溢出])

  getContext()。PREC = 50

  B =十进制(1)/十进制(3)

  b

  

  C =十进制(1)/十进制(17)

  C

  小数('0.05882352941176470588294117647058294117647059')

  浮子(c)

  0.058823529411764705

  默认的上下文精度为28位,可以将其设置为50位甚至更高。这样,在分析复杂的浮点时,您可以具有更高的精度可以控制。= round_half_even在上下文中

  parameter.round_half_even,一半时,接近偶数。

  3.关于小数和提取

  现在,当您谈论十进制时,有必要谈论整数。这些功能通常用于纠正:

  1.圆()

  更不用说了,我之前已经说过。必须指出,它不是一个简单的四屋,而是round_half_even的策略。

  2.数学模块(x)的Ceil(X)

  最小整数大于或等于x。

  3.数学模块的地板(x)

  转到小于或等于x的最大整数。

  从数学进口ceil,地板

  回合(2.5)

  2

  CEIL(2.5)

  3

  地板(2.5)

  2

  回合(2.3)

  2

  CEIL(2.3)

  3

  地板(2.3)

  2

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

  [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')))

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

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

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

  原因如下:

  上述情况主要是因为浮点数实际上保存在计算机中的计算机中,有些是不准确的。

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

  0.000110011001100110011001110011110011100110011001100

  Python保留了双准确度(64)位,并且将切断多余的位,因此您会看到0.1,但计算机上的实际保留不准确0.1.1。

  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  [Python3]计算高精确浮动 - 点号法

  小数模块的“ getContext”和“十进制”方法

  getContext()。prec = 2 #settings精度

  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  在十进制模块中,可以通过整数,字符串或原理构造十个十个对象。如果是浮点的数量,请特别注意浮点数的误差本身,您需要转换浮点首先进入字符串。

  当然,尽管精度得到提高,但必须带来绩效损失。在数据要求特别准确的情况下(例如财务解决),这些绩效的损失值得。但是,如果它是一个大型科学计算,则有必要考虑操作效率。一切后,本机浮点绝对比小数对象快得多。

  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  浮点数和整数的比较

  值相等,地址不同

  让我们谈谈Python的准确性。感谢您阅读本网站的内容。有关Python准确性的更多信息,请不要忘记在此网站上找到它。