【Python基础知识库】Python中decimal精确计算

    技术2026-02-23  6

    python decimal精确计算

    python decimal精确计算

    (1). Decimal接收int和string类型参数 from decimal import * # 不能传入浮点数据,因为浮点数据就不准确 a = Decimal(3.33)*100 b = Decimal('3.33')*100 c = Decimal(3) print(a) print(b) print(c) # 结果 ''' Decimal('333.0000000000000071054273576') Decimal('333.00') Decimal('3') ''' (2). 浮点数据转换为Decimal类型 from decimal import * Decimal.from_float(2.222) # 结果 ''' Decimal('2.221999999999999975131004248396493494510650634765625') ''' (3). 设定有效数字

    特别注意,如果prec的长度比数字的长度小的话,扩充*100时就会出错

    from decimal import * # 保留6个有效数字 getcontext().prec = 6 Decimal(1)/Decimal(7) # 结果 ''' Decimal('0.142857') ''' (4). 四舍五入,保留几位小数 from decimal import * # 保留两位小数 Decimal('0.2335662').quantize(Decimal('0.00')) # 结果 ''' Decimal('0.23') ''' (5). Decimal转化为字符串类型 from decimal import * # 保留两位小数 str(Decimal('0.2335662').quantize(Decimal('0.00'))) # 结果 ''' '0.23' '''
    Processed: 0.048, SQL: 10