____tz_zs
误差的原因是浮点运算总是近似值。 特别是rydlz超出了你的CPU可以准确建模的范围(因为浮点运算由硬件处理)。
整数除法不需要将整数转换为浮点数,而只是用整数相除,但Python允许整数任意变大而不影响精度。
big _ int=10 * * 4023打印(f (原始:(big_int ) ) (打印) f )整数除法: ) big_int///2 ) ) (打印) f ) 2 ) :1f ) ) ) ) ''原创33601000000000000000000000000000000000000023整数除法336050000000000000151891890000000000000000000000 00000000000015189301421350183445376.0整数除法浮点表示: 500000000000000015189301421350183445376.0 ' ' decimal大数字的计算也同样存在损失问题
fromdecimalimportdecimalbig_int=10 * * 40 int ('2' * 20 ) print(f '原始: ) big _ int ) ) print ) f '整数除法器3360 ) 2 ) :1f ) ) f )整数除法) ) big_int//2) 3360.1f ) ) ''原始336010000000000000000000022222222222222050505000000000000011111111111110000000000000000 0000015189301421350183445376.0整数除法: 50000000000000015189301421350183445376.0 ' ' d=decimal (big _ int )/) ) ) 500
d=decimal(big_int )/decimal )2) ' ' decimal.invalid operation : [ class ' decimal.division impossible ' ] ' '
howtomanagedivisionofhugenumbersinpython?
《decimal — 十进制定点和浮点运算》
《decimal — 高精度计算模块》