返回顶部
首页 > 资讯 > 后端开发 > Python >python怎么控制输出小数精度
  • 795
分享到

python怎么控制输出小数精度

2023-06-30 14:06:41 795人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python怎么控制输出小数精度”,在日常操作中,相信很多人在Python怎么控制输出小数精度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么控制输出小数精度”的疑惑有所帮助!

这篇文章主要介绍“python怎么控制输出小数精度”,在日常操作中,相信很多人在Python怎么控制输出小数精度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么控制输出小数精度”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、要求较小的精度

将精度高的浮点数转换成精度低的浮点数。

1.round()内置方法

round()不是简单的四舍五入的处理方式。

>>> round(2.5)2>>> round(1.5)2>>> round(2.675)3>>> round(2.675, 2)2.67

round()如果只有一个数作为参数,不指定位数的时候,返回的是一个整数,而且是最靠近的整数(这点上类似四舍五入)。但是当出现.5的时候,两边的距离都一样,round()取靠近的偶数2。

当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的这样情况,如果要取舍的位数前的小树是奇数,则直接舍弃,如果偶数这向上取舍。

看下面的示例:

>>> round(2.635, 2)2.63>>> round(2.645, 2)2.65>>> round(2.655, 2)2.65>>> round(2.665, 2)2.67>>> round(2.675, 2)2.67

2. 使用格式化

效果和round()是一样的。

>>> a = ("%.2f" % 2.635)>>> a'2.63'>>> a = ("%.2f" % 2.645)>>> a'2.65'>>> a = int(2.5)>>> a2

二、要求超过17位的精度分析

python默认的是17位小数的精度,但是这里有一个问题,就是当我们的计算需要使用更高的精度(超过17位小数)的时候该怎么做呢?

1. 使用格式化(不推荐)

>>> a = "%.30f" % (1/3)>>> a'0.333333333333333314829616256247'

可以显示,但是不准确,后面的数字往往没有意义。

2. 高精度使用decimal模块,配合getcontext

>>> from decimal import *>>> print(getcontext())Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999,capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero,Overflow])>>> getcontext().prec = 50>>> b = Decimal(1)/Decimal(3)>>> bDecimal('0.33333333333333333333333333333333333333333333333333')>>> c = Decimal(1)/Decimal(17)>>> cDecimal('0.058823529411764705882352941176470588235294117647059')>>> float(c)0.058823529411764705

默认的context的精度是28位,可以设置为50位甚至更高,都可以。这样在分析复杂的浮点数的时候,可以有更高的自己可以控制的精度。

其实可以留意下context里面的这rounding=ROUND_HALF_EVEN参数ROUND_HALF_EVEN, 当half的时候,靠近even.

三、关于小数和取整

既然说到小数,就必然要说到整数。一般取整会用到这些函数:

1. round()

这个不说了,前面已经讲过了。一定要注意它不是简单的四舍五入,而是ROUND_HALF_EVEN的策略。

2. math模块的ceil(x)

取大于或者等于x的最小整数。

3. math模块的floor(x)

去小于或者等于x的最大整数。

>>> from math import ceil, floor>>> round(2.5)2>>> ceil(2.5)3>>> floor(2.5)2>>> round(2.3)2>>> ceil(2.3)3>>> floor(2.3)2>>>

到此,关于“python怎么控制输出小数精度”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: python怎么控制输出小数精度

本文链接: https://lsjlt.com/news/329698.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python怎么控制输出小数精度
    这篇文章主要介绍“python怎么控制输出小数精度”,在日常操作中,相信很多人在python怎么控制输出小数精度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么控制输出小数精度”的疑惑有所帮助!...
    99+
    2023-06-30
  • python输出小数精度控制的方法
    目录一、要求较小的精度1.round()内置方法2. 使用格式化二、要求超过17位的精度分析1. 使用格式化(不推荐)2. 高精度使用decimal模块,配合getcontext三、...
    99+
    2024-04-02
  • 怎么控制Python浮点数输出位数
    这篇“怎么控制Python浮点数输出位数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么控制Python浮点数输出位数”文...
    99+
    2023-06-30
  • C语言怎么输出双精度数
    这篇文章主要介绍“C语言怎么输出双精度数”,在日常操作中,相信很多人在C语言怎么输出双精度数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言怎么输出双精度数”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • python怎么获取控制台输出内容
    在Python中,可以使用print()函数将内容输出到控制台。如果想获取控制台输出的内容,可以使用subprocess模块来实现。...
    99+
    2023-10-18
    python
  • JavaScript怎么从控制台输出
    本篇内容主要讲解“JavaScript怎么从控制台输出”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么从控制台输出”吧!输出方法:1、使用...
    99+
    2024-04-02
  • python数据结构输入输出及控制和异常
    目录1. 输入 input2. 输出 print2.1 普通输出2.2 格式化输出3. 控制语句4. 异常处理前言: python数据类型: python数据结构之数据类型.今天我们...
    99+
    2024-04-02
  • 控制Python浮点数输出位数的操作方法
    目录技术背景常规控制方法取有效数字总结概要 在python的输出结果中,尤其是浮点数的输出,当我们需要写入文本文件时,最好是采用统一的输出格式,这样也能够增强结果的可读性。而对于浮点...
    99+
    2024-04-02
  • MyBatis中怎么控制SQL日志输出
    在 MyBatis 中,可以通过配置文件来控制 SQL 日志的输出。具体步骤如下: 在 MyBatis 的配置文件中,可以使用 &...
    99+
    2024-04-08
    MyBatis
  • c语言浮点数输出的格式怎么控制
    在C语言中,可以使用printf函数来控制浮点数输出的格式。下面是一些常见的格式控制符:1. %f:输出浮点数,小数点后默认保留6位...
    99+
    2023-05-14
    c语言浮点数 c语言
  • C语言如何格式化输出控制长度
    这篇文章主要介绍了C语言如何格式化输出控制长度的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何格式化输出控制长度文章都会有所收获,下面我们一起来看看吧。c语言格式化输出控制长度实现ls命令的时候,输出的...
    99+
    2023-06-16
  • matlab控制运算精度、四舍五入保留小数点后特定位数
    在MATLAB中,可以使用以下方法来控制运算精度和四舍五入保留小数点后特定位数:1. 控制运算精度:可以使用`format`函数来控...
    99+
    2023-09-12
    matlab
  • 怎么将从Java控制台输入的数组进行逆序输出
    怎么将从Java控制台输入的数组进行逆序输出?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现在控制台输入一个数组,并让其逆序输出源码:import java.util.S...
    99+
    2023-05-31
    java ava 将从
  • c语言怎么输出小数
    在 c 语言中可使用 printf() 函数输出小数,采用 %f 格式说明符指定位数;使用 %g 格式说明符自动选择 %f 或 %e 格式;使用 %.f 控制精度;使用 %-.f 或 %...
    99+
    2024-05-15
    c语言
  • ContentType控制输出的类型区分大小写吗
    ContentType控制输出的类型区分大小写吗?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。           ...
    99+
    2023-06-08
  • python如何实现控制台输出颜色
    这篇“python如何实现控制台输出颜色”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“python如何实现控制台输出颜色”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获...
    99+
    2023-06-06
  • 使用Python怎么控制台输出一个俄罗斯方块
    这篇文章给大家介绍使用Python怎么控制台输出一个俄罗斯方块,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。俄罗斯方块-打印功能:输入字母,打印俄罗斯方块的*图形# 尽可能吧俄罗斯方块放在中间Tetris&n...
    99+
    2023-06-14
  • python调用dll出现精度问题怎么办
    这篇文章主要介绍“python调用dll出现精度问题怎么办”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python调用dll出现精度问题怎么办”文章能帮助大家解决问题。遇到的问题具体情况dll 生...
    99+
    2023-07-05
  • js控制台输出数组的方法是什么
    在 JavaScript 中,可以使用 `console.log()` 方法来在控制台输出数组。例如:```javascriptle...
    99+
    2023-08-08
    js
  • JavaScript如何将数据输出到控制台
    在 JavaScript 中打印可以是一个简单而重要的任务。这个功能不仅可以帮助我们调试错误,还可以输出数据给用户或者将生成的信息发送到日志文件中。在这篇文章中,我们将介绍几种打印技术和方法,通过它们我们可以将 JavaScript 中的数...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作