iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中的数字运算及格式化
  • 556
分享到

Python中的数字运算及格式化

2023-06-02 01:06:15 556人浏览 独家记忆

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

摘要

本篇内容主要讲解“python中的数字运算及格式化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的数字运算及格式化”吧!  本篇幅主要针对浮点数的一些计算及格式化输出。  roun

本篇内容主要讲解“python中的数字运算及格式化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python中的数字运算及格式化”吧!

  本篇幅主要针对浮点数的一些计算及格式化输出。

  round()

  Python 提供的内置函数 round(number[, ndigits]) 可用于简单的舍入运算。如下示例:

  >>> round(1.23)

  1

  >>> round(1.23, 1)

  1.2

  >>> round(1.27, 1)

  1.3

  >>> round(-1.27, 1)

  -1.3

  >>> round(1.2346, 3)

  1.235

  round() 函数返回四舍五入到小数点后 ndigits 位精度的数字。如果 ndigits 默认为 None,则返回最接近的整数。

  ndigits 参数可以是负数,在这种情况下,舍入运算会作用在十位、百位、千位等上面。例如:

  >>> x = 1234567

  >>> round(x, -1)

  1234570

  >>> round(x, -2)

  1234600

  >>> round(x, -3)

  1235000

  如果一个数字刚好在两个边界中间时,调用 round() 函数会返回离它最近的偶数。例如 round(0.5) 和 round(-0.5) 返回的结果都是 0。如下示例:

  >>> round(0.5)

  0

  >>> round(-0.5)

  0

  有时运用 round() 会得不到期望的值。例如 round(2.675, 2) 得到的是 2.67,却不是期望得到的 2.68。如下:

  >>> round(2.675, 2)

  2.67

  这并非是 bug。Python 文档也给出了其中的注解,这是因为大多数十进制小数实际上都不能以浮点数精确地表示。

  Note:The behavior of round() for floats can be surprising: for example, round(2.675, 2) gives 2.67 instead of the expected 2.68. This is not a bug: it’s a result of the fact that most decimal fractions can’t be represented exactly as a float.

  若需了解更多信息可以访问: Floating Point Arithmetic: Issues and Limitations。

  格式化输出

  数字舍入跟格式化不能混淆。若是简单输出指定宽度的数,可以考虑用 fORMat(),不需要使用 round()。在格式化的时候指定精度就可以。例如:

  >>> x = 1234.56789

  >>> # 精确到小数点后两位

  ... format(x, '0.2f')

  '1234.57'

  >>> # 以 10 个字符右对齐,精确到小数点 1 位

  ... format(x, '>10.1f')

  ' 1234.6'

  >>> # 左对齐

  ... format(x, '<10.1f')

  '1234.6 '

  >>> # 居中

  ... format(x, '^10.1f')

  ' 1234.6 '

  >>> # 包含千分位分隔符

  ... format(x, ',')

  '1,234.56789'

  >>> format(x, '0,.1f')

  '1,234.6'

  >>>

  同样可以使用指数记法,将 f 改成 e 或者 E(取决于指数输出的大小写形式)。示例如下:

  >>> format(x, 'e')

  '1.234568e+03'

  >>> format(x, '0.2E')

  '1.23E+03'

  指定宽度和精度的一般形式为 '[<>^]?width[,]?(.digits)?',其中 width 和 digits 为整数,? 代表可选部分。这种格式可以用在字符串的 format() 方法中。示例如下:

  >>> 'The value is {:0,.2f}'.format(x)

  'The value is 1,234.57'

  精确运算郑州较好的妇科医院 Http://www.kd0371.com/

  因为浮点数运算存在误差,不建议尝试使用舍入浮点值来“修正”表面上看起来正确的问题。示例如下:

  >>> a = 2.1

  >>> b = 4.2

  >>> c = a + b

  >>> c

  6.300000000000001

  >>> c = round(c, 2) # 不建议这么做

  >>> c

  6.3

  一般使用浮点数的情况下,不建议这么做。这些误差在一般情况下能够被容忍的。但是如果涉及到比如金融领域(不允许小误差存在)的情况下,建议考虑使用 decimal 模块。

  decimal

  由于浮点数不能精确的表示十进制,会出现上述简单数学运算出现误差的情况。

  Python 提供的 decimal 模块,在损耗一定性能的前提下,能够解决这个问题。如下示例:

  >>> from decimal import Decimal

  >>> a = Decimal('4.2')

  >>> b = Decimal('2.1')

  >>> a + b

  Decimal('6.3')

  >>> print(a + b)

  6.3

  >>> (a + b) == Decimal('6.3')

  True

  虽然代码写起来会有些奇怪,但是 Decimal 对象能够像普通的浮点数支持所有的常用数学运算。在使用 print 的情况下,跟普通数字没有区别。

  decimal 允许控制计算,包括精确位数跟舍入运算。可以通过创建上下文管理器进行设置更改,示例如下:

  >>> from decimal import localcontext

  >>> a = Decimal('1.3')

  >>> b = Decimal('1.7')

  >>> print(a/b)

  0.7647058823529411764705882353

  >>> with localcontext() as ctx:

  ... ctx.prec = 3 # 精确位数

  ... print(a/b)

  ...

  0.765

  >>> with localcontext() as ctx:

  ... ctx.prec = 50 # 精确位数

  ... print(a/b)

  ...

  0.76470588235294117647058823529411764705882352941176

  decimal 运用场景,更常见的是在金融领域(不能容忍小误差存在)。

  但是 decimal,需要损耗性能进行精确的运算,在普通领域,甚至于科学领域的大多数运算,使用普通浮点数类型是普遍的做法。

  除了真实世界很少要求要精确到普通浮点数能提供的 17 位精度的原因外,还有进行大量运算的时候,普通浮点数要快得多,这同样是需要衡量的地方。

  但也不能完全忽略误差,误差出现,同样需要研究并理解误差产生的来源。

到此,相信大家对“Python中的数字运算及格式化”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python中的数字运算及格式化

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中的数字运算及格式化
    本篇内容主要讲解“Python中的数字运算及格式化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的数字运算及格式化”吧!  本篇幅主要针对浮点数的一些计算及格式化输出。  roun...
    99+
    2023-06-02
  • python format格式化和数字格式化
    目录1.format() 基本用法2.填充与对齐3.数字格式化1.format() 基本用法 python2.6 开始,新增了一种格式化字符串的函数str.format(),它增强了...
    99+
    2024-04-02
  • python format格式化和数字格式化的方法
    这篇“python format格式化和数字格式化的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python...
    99+
    2023-06-29
  • python格式化字符及转义字符
                     Python格式化字符串的替代符以及含义    符   号    说     明      %c 格式化字符及其ASCII码      %s 格式化字符串      %d 格式化整数      %u 格式化...
    99+
    2023-01-31
    字符 python
  • python 中的字符串格式化
    %方式的调用 1。格式化代码 代码 意义 s 字符串,使用str r 字符串,使用repr不使用str c 字符 d 十进制的数字 i 整数 u 无符号整数 o 八进制 x 十六进制 X 大...
    99+
    2023-01-30
    字符串 python
  • Python中怎么格式化数字为字符串
    在Python中,可以使用format()方法或者f-string来格式化数字为字符串。 使用format()方法: num =...
    99+
    2024-04-03
    Python
  • python字符串格式化函数
    目录​1、​格式化字符串输出​2、​三引号​3、Unicode​4、字符串字母处理函数(补充)知识点:格式化、三引号、Unicode、字符串字母处理函数 ​1、​格式化字符串输出​ ...
    99+
    2024-04-02
  • java格式化数字操作 NumberFormat及DecimalFormat
    目录前言正文JavaAPI官方描述NumberFormatDecimalFormatNumberFormat获取NumberFormat实例常用方法使用示例DecimalFormat...
    99+
    2024-04-02
  • python字符串处理以及字符串格式化
    一、python字符串处理 目录: 1.算长度(len),某个元素出现的次数(count) 2.切片   [ ],repr:把不可见字符显示出来 3.查找 #find,rfind从右边查找 4.字符串和列表之间的转换(split,join...
    99+
    2023-01-30
    字符串 python
  • Python字符串类型及格式化问题
    目录一、字符串类型二、字符串类型三、字符串的索引四、字符串的切片五、format()方法的基本使用六、format()方法的格式控制总结一、字符串类型 1)字符串是字符的序列表示,根...
    99+
    2023-02-21
    Python字符串类型 Python格式化 Python字符串格式化
  • 详解Python中的字符串格式化
    目录什么是字符串格式化,为什么需要这样做?程序中都有哪些格式化?占位符格式化第一种%占位符格式化第二种占位符格式化关键字格式化总结什么是字符串格式化,为什么需要这样做? 我们有时候...
    99+
    2024-04-02
  • Python-字符串格式化
    python字符串格式化 字符串的格式化使用f字符串使用format使用%运算符 字符串的格式化 在python3中有三种格式化方式 使用占位符格式化 2.使用format格式化 3....
    99+
    2023-10-08
    python 开发语言
  • Python字符串格式化
    字符串格式化话的标准形式为 "Template String " % (Data) 标准形式 %+8.6f 转换开始标志% 转换标志 最小宽度 精度,用小数点隔开 转换类型 转换类型表见pythonEssentialRefer...
    99+
    2023-01-31
    字符串 Python
  • Python常见的函数及格式化输出
    目录Python常见函数及格式化输出一、大小写转换方法1、upper()2、lower()3、capitalize()4、title()5、swapcase()二、分割、组合与移除方...
    99+
    2024-04-02
  • C#中怎么格式化数字
    这期内容当中小编将会给大家带来有关C#中怎么格式化数字,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#数字格式化之格式为sring输出 Label1.Text = string.Format("...
    99+
    2023-06-17
  • Python中怎样格式化字符串
    这篇文章给大家介绍Python中怎样格式化字符串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. %-formatting格式化字符串最早的格式化是用%(百分号), 它这么用:In&...
    99+
    2024-04-02
  • DecimalFormat数字格式化 0和# 的区别及说明
    目录先来介绍一下“0”和“#”的区别1. 以“0”补位时2. 以“#”补位时小结一下DecimalFormat 数据四舍五入格式化处理问题探索结果先来介绍一下“0”和“#”的区别 1...
    99+
    2024-04-02
  • Python字符串格式化方式
    目录什么是格式化?使用格式化的场景和目的格式化的三种方式根据类型定义的格式化 - %s关于整数的输出关于浮点数的输出关于字符串的输出字符串格式化函数 - format()format...
    99+
    2024-04-02
  • java中的数字的格式化(超详细)
    数字的格式化在解决实际问题时使用非常普遍,如显示某超市的商品价格,需要保留两位小数。Java 主要对浮点型数据进行数字格式化操作,其中浮点型数据包括 double 和 float 型数据,在 java 中常用以下方法: 目录        ...
    99+
    2023-09-02
    java jvm eclipse
  • python中字符串格式化使用什么函数
    python中使用format函数格式化字符串,具体方法如下:通过字典设置参数site = {"name": "张三", "age": "18"}print("姓名:{name}, 年龄 {age}".format(**site))输出结果...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作