我们都知道,不管我们学的是什么语言的编程,其实都是一样的。当我们学习并掌握了一门语言后,再去学习另一门语言其实是非常容易的。''%.2f'%f方法(推荐)In[1]:f=1.23456In[2]:'%.4f'%fOut[2]:'1.2346'In[3]:'%.3f'%fOut[3]:'1.235'In[4]:'%.2f'%fOut[4]:'1.23'In[5]:#相当于下面的代码In[6]:print('%.4f'%f)1.2346In[7]:print('%.3f'%f)1.235In[8]:print('%.2f'%f)1.23提示此方法将执行舍入。格式函数(推荐)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.23In[15]:print(format(1.23456,'.3f'))1.235在[16]:print(format(1.23456,'.4f'))1.2346提示该方法会进行四舍五入。补充In[30]:print("{num:.2f}".format(num=0.13333))0.13In[31]:print("{num:.2f}".format(num=0.10333))0.10In[32]:print("{num:.2f}".format(num=0.10533))0.11在[33]:print("{num:.2f}".format(num=0.11533))0.12如下表显示str.format()数字格式化有多种方式:^、<、>分别居中、左对齐、右对齐,后接宽度,:字符后接填充字符,只能是一个character,不指定则默认用空格填充。表示+显示在正数前,-显示在负数前;(space)表示在正数前加空格。b、d、o和x分别是二进制、十进制、八进制和十六进制。另外,我们可以使用大括号{}来对大括号进行转义,如下例:print("{}对应于{{0}}".format("aiyc"))输出结果为:aiyc对应于{0}round()函数其实这个方法并不推荐大家使用。查询资料后发现其实里面有很多坑。python2和python3中的坑不太一样。这里简单描述一下python3.0对应的坑。a=1.23456b=2.355c=3.5d=2.5print(round(a,3))print(round(b,2))print(round(c))print(round(d))输出:1.235#1.23456最后向前移动了2.35#2.355没有进位4#最后3.5居然变成了42#最后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)变成2In[21]:round(2.5)Out[21]:2In[22]:round(3.5)Out[22]:4In[23]:round(4.5)Out[23]:4In[24]:round(5.5)Out[24]:6In[25]:round(6.5)Out[25]:6info总结当n为0时,奇数数字向上舍入,偶数向下舍入。【当然你也可以理解为5进位与否】(6)整数部分为奇数时,小数点为5进位。(round(3.5)变成4)不取整,直接truncate(1)放大指定倍数,然后取整,再除以指定倍数。#保留三位小数截断python3print(int(1.23456*1000)/1000)(2)使用字符串截取,截取小数点后指定位数就是本次分享的全部内容,想学编程的朋友们现在指道Python技术大本营,欢迎前来~
