发布网友 发布时间:2022-04-25 04:55
共4个回答
热心网友 时间:2022-04-07 13:03
可以使用decimal模块,decimal意思为十进制,这个模块提供了十进制浮点运算支持。
常用方法
1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。
2.要从浮点数据转换为Decimal类型
from decimal import *
Decimal.from_float(12.222)
# 结果为Decimal('12.2219999999999995310417943983338773250579833984375')
3.通过设定有效数字,限定结果样式:
from decimal import *
getcontext().prec=6
Decimal(1)/Decimal(7)
# 结果为Decimal('0.142857'),六个有效数字
4.四舍五入,保留几位小数
from decimal import *
Decimal('50.5679').quantize(Decimal('0.00'))
# 结果为Decimal('50.57'),结果四舍五入保留了两位小数
5.Decimal 结果转化为string
from decimal import *
str(Decimal('3.40').quantize(Decimal('0.0')))
# 结果为'3.40',字符串类型
Python提供了decimal模块用于十进制数学计算,它具有以下特点:
提供十进制数据类型,并且存储为十进制数序列;
有界精度:用于存储数字的位数是固定的,可以通过decimal.getcontext().prec=x 来设定,不同的数字可以有不同的精度
浮点:十进制小数点的位置不固定(但位数是固定的)
Python-百度百科
热心网友 时间:2022-04-07 14:21
就是字符串格式化吧
字段宽度和精度
>>> '%6f' % 4.58 #字段宽度6
>>> '4.580000'
>>> '%6.3f' % 4.58 #字段宽度6, 精度3
>>> ' 4.580' #注意,前面有个空格哦
>>> '%.3f' % 4.58 #精度3
>>> '4.580'追问谢谢你的解答!已经解决了!
热心网友 时间:2022-04-07 15:56
round(a,3)
热心网友 时间:2022-04-07 17:47
>>> a = 1.234567
>>> b = "%.4f" % a
>>> print b
1.2346
是要这样的效果吗?追问这样转换会成为字符型,要想把缩减了小数位数的b与数字运算还要转化为浮点型。查了文档看到float的一种是用方法: float('%.4f'% a),这样就好多了。呵呵,不过依然谢谢你的解答!