首页 > 编程知识 正文

python浮点数保留两位小数,python浮点型保留两位小数

时间:2023-05-05 23:53:42 阅读:204527 作者:3285

在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分)。

例如 int a=15/10; a的结果为1。

同样的在Java中也是如此,所以两个int型的数据相除需要返回一个浮点型数据的时候就需要强制类型转换,例如 float a = (float)b/c ,其中b、c都是int型数据。

Python中分为3种除法:传统除法、精确除法、地板除。

传统除法

如果是整数除法则执行地板除,如果是浮点数除法则执行精确除法

>>>1/20>>>1.0/2.0

0.5

精确除法

除法总是会返回真实的商,不管操作数是整形还是浮点型。

执行from future import division 指令就可以做到这一点。

#-*- coding: UTF-8 -*-

from __future__ importdivisionfrom __future__ importprint_functionfrom __future__ importunicode_literals>>>1/2

0.5

>>>1.0/2.0

0.5

地板除

从Python2.2开始,增加了一个操作符 // ,以执行地板除://除法不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字。

>>>1//20>>>1.0//20>>>-1//2.0

-1

内建函数divmod()

divmod (a,b),返回(a//b,a%b)

>>>divmod(1,2)

(0,1)>>>divmod(3.14159,1.5)

(2.0,0.4159000000000002)>>>5+6j//3+2j

2+0j>>>5+6j%3+2j

-1+2j

>>>divmod(5+6j,3+2j)

((2+0j),(-1+2j))

保留两位小数

In [1]: a = 5.026In [2]: b = 5.000In [3]: round(a,2)

Out[3]: 5.03In [4]: round(b,2)

Out[4]: 5.0In [5]: '%.2f' %a

Out[5]: '5.03'In [6]: '%.2f' %b

Out[6]: '5.00'In [7]: float('%.2f' %a)

Out[7]: 5.03In [8]: float('%.2f' %b)

Out[8]: 5.0In [9]: from decimal importDecimal

In [10]: Decimal('5.026').quantize(Decimal('0.00'))

Out[10]: Decimal('5.03')

In [11]: Decimal('5.000').quantize(Decimal('0.00'))

Out[11]: Decimal('5.00')

当需要输出的结果要求有两位小数的时候,字符串形式的:’%.2f’ % a 方式最好,其次用Decimal

round(a,2)'%.2f' %a

Decimal('5.000').quantize(Decimal('0.00'))

a = 1b= 3

print(a/b)#方法一:

print(round(a/b,2))#方法二:

print(format(float(a)/float(b),'.2f'))#方法三:

print ('%.2f' %(a/b))

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。