Python 保留指定位数的小数【全部方法】

虚树星云
• 阅读 1559

学过编程我们都知道,无论什么语言,其实都是相通的,,当我们学会了并掌握好了一种语言后,我们再去了解另外一种语言,其实就很容易了。

  1. ‘’%.2f’ %f 方法(推荐)
In [1]: f = 1.23456

In [2]: '%.4f' % f
Out[2]: '1.2346'

In [3]: '%.3f' % f
Out[3]: '1.235'

In [4]: '%.2f' % f
Out[4]: '1.23'

In [5]: # 等价于下面的代码

In [6]: print('%.4f' % f)
1.2346

In [7]: print('%.3f' % f)
1.235

In [8]: print('%.2f' % f)
1.23

提示

这个方法会进行四舍五入。

  1. format 函数(推荐)

    In [10]: format(1.23456, '.2f')
    Out[10]: '1.23'
    
    In [11]: format(1.23456, '.3f')
    Out[11]: '1.235'
    
    In [12]: format(1.23456, '.4f')
    Out[12]: '1.2346'
    
    In [13]: # 等价于
    
    In [14]: print(format(1.23456, '.2f'))
    1.23
    
    In [15]: print(format(1.23456, '.3f'))
    1.235
    
    In [16]: print(format(1.23456, '.4f'))
    1.2346
    

    提示

这个方法会进行四舍五入。

补充

In [30]: print("{num:.2f}".format(num=0.13333))
0.13

In [31]: print("{num:.2f}".format(num=0.10333))
0.10

In [32]: print("{num:.2f}".format(num=0.10533))
0.11

In [33]: print("{num:.2f}".format(num=0.11533))
0.12

下表展示了 ​​str.format()​​ 格式化数字的多种方法:
Python 保留指定位数的小数【全部方法】

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

  • 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格

b、d、o、x 分别是二进制、十进制、八进制、十六进制。

此外我们可以使用大括号 {} 来转义大括号,如下实例:

print ("{} 对应的位置是 {{0}}".format("aiyc"))

输出结果为:

aiyc 对应的位置是 {0}
  1. round() 函数
    其实这个方法不推荐大家使用,查询资料发现里面的坑其实很多,python2 和 python3 里面的坑还不太一样,在此简单描述一下 python3对应的坑的情况。
a = 1.23456
b = 2.355
c = 3.5
d = 2.5
print(round(a, 3))
print(round(b, 2))
print(round(c))
print(round(d))

输出结果:

1.235   # 1.23456 最终向前进位了
2.35    # 2.355 居然没进位
4       # 最终 3.5 居然变为 4 了
2       # 最终 2.5 取值变为 2

(1)通过上面的函数,看着是不是很晕,感觉 ​​round(x, n)​​ 函数是否进位也没看出是啥规律;

(2)​​round(x, n)​​ 函数中,是否进位或四舍五入,取决于 n 位以及 n+1 位小数的值;

(3)只有当 n+1 位数字是 5 的时候,容易混淆,如果 n 为偶数,则 n+1 位数是5,则进位,例如 ​​round(1.23456, 3)​​ 最终变为 1.235

(4)如果 n 为奇数,则 n+1 位是数 5,那不进位,例如 ​​round(2.355, 2)​​,最终为 2.35

(5)如果 n 为 0,即没有填写 n 的时候,最终结果与上面相反,即整数部分为偶数的时候,小数位 5 不进位,例如: ​​round(2.5)​​ 变为2。

In [21]: round(2.5)
Out[21]: 2

In [22]: round(3.5)
Out[22]: 4

In [23]: round(4.5)
Out[23]: 4

In [24]: round(5.5)
Out[24]: 6

In [25]: round(6.5)
Out[25]: 6

info 小结

n 为 0 的时候,奇数向上取整、偶数向下取整。【当然,你也可以理解为 5 进不进位】

(6)整数部分为奇数的时候,小数位 5 进位。( ​​round(3.5)​​ 变为 4)

  1. 不进行四舍五入,直接进行截断
    (1)可以放大指定的倍数,然后取整,然后再除以指定的倍数。

    #保留三位小数截断 python3
    print(int(1.23456 * 1000) / 1000 )
    

(2) 使用字符串截取,截取小数点后指定的位数

以上就是本次分享的全部内容,现在想要学习编程的小伙伴指路Python技术大本营,欢迎各位的到来哦~
Python 保留指定位数的小数【全部方法】

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
4年前
学Python后到底能干什么?
Python是一种什么语言?Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的Java语言等,Python是他们其中的一种。首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等,
粥白 粥白
4年前
如何学好python,新手怎么入门?
小的时候,你是怎么学习语文,学习英语的,那么现在你就可以怎么学习python。任何一门编程语言,其实都是最终都演变成机器可以懂得的语言,如果把机器比喻成外国人的话,你只要掌握和他交流的方式就可以了,甚至来说,这个语言比语文,比英语更简单,语文还要学习词语,成语,以及发音,还有每种发音不同的意思。英语还要学习语法,“现在进行时”,“过去进行时”等等一系列的东西
Aidan075 Aidan075
4年前
Jupyter Notebook最强指南,没有之一
(文末有福利)Python语言是一种强大而简洁的编程语言。据IEEESpectrum消息,Python在2020年继续蝉联最受欢迎的编程语言第一名。对于刚接触Python的新手来说,配置一个容易上手又适合自己的开发环境无疑是成功掌握这门编程语言的第一步。对于PythonIDE的比较和推荐,各路高手也说法不同,其中被推荐频率最高的当属Pycharm、V
学python的猫 学python的猫
4年前
小白想学python,怎么做?
小白需要怎么学习python,python学习的难度大吗?学python需要从哪学起?学Python难?首先,我们普及一下编程语言的基础知识。编程语言的作用是为了让计算机干活,比如下载视频,音乐编辑文档等,而计算机干活的CPU只认识机器指令,所以,尽管编程语言不同,最后都要翻译成CPU能听懂的语言。而不同的编程语言,干同一个活,编写的代码量,差距也很大。Py
Bill78 Bill78
5年前
Python入门之类(class)
Python3面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对
为什么我们没有自己的编程语言?
应该要明确一个问题就是在中国会赚钱的公司不一定是厉害和令人尊敬的公司。其实在外面也差不多,只是外面市场环境更好,你能做出好东西,养活自己有点发展的问题不大。编程语言其实说白了也是计算机的一个工具罢了,你
Bill78 Bill78
5年前
Python入门之类(class)
Python3面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对
Stella981 Stella981
4年前
Python快速入门到精通开发知识体系图
课程简介:Python语言已经在大数据、机器学习等领域胜出,这是毋庸置疑的事实了。它以简洁、优雅的语言风格征服了程序员和非专业程序员。并且,它还是一种非常容易学的语言。所以,学习Python性价比最高。本套课程适合零基础学员学习,是入门Python的必须课程。学完此课,你讲达到Python初级程序员的水平,具备开发基础,掌握面向对象编程思
Wesley13 Wesley13
4年前
C语言之指针
  学过编程语言的童鞋们都知道指针是C语言的精髓,学好了指针就等于学好了C语言,它能够直接对物理地址进行访问,具有双重功能,是嵌入式设计中必不可少的一门语言。C语言功能强大的主要原因就是具有指针结构。指针是一种特殊的数据类型,直接指向目标的存储地址,实现直接访问对象存储空间功能。指针到底是什么    计算机的内存被划分为多个存储单
codigger codigger
4个月前
微语言框架:让程序会说多种语言的"翻译官"
在编程世界中,每种语言都有自己的特长。Java擅长企业应用,Python在数据分析领域表现出色,JavaScript则是网页开发的首选。但当我们想要在一个项目中同时使用多种语言时,传统方法往往需要在不同的开发环境之间来回切换,既麻烦又容易出错。什么是微语言
codigger codigger
1个月前
简析:一种名为 ObjectSense 的编程语言
让我们通过以下三个维度来了解它:1.语言本质与起源基础平台:它是一种基于VimScript(VimL)进行面向对象封装的脚本编程语言。核心特性:高度精炼,核心代码仅在千行之内。设计初衷:旨在让开发者能像写Python一样简洁地编写代码,并用于构建Super