首页 > 编程知识 正文

python保留小数补0,python整数后面保留两个零

时间:2023-05-04 13:46:11 阅读:209471 作者:4391

对于python的初学者,通常情况下, 只需要输出结果符合预期即可,所以通常情况下,print就能够满足需求。

print

但是如果对于数据流转的情况下,我一开始没有找到合适的方法:
例如,我想把1.2000保留三位有效数字,如果按照其他方法:

a = 1.2345print(round(a,3))

输出的结果是:

1.234 末尾有0

但是如果是要将1.2000保留三位有效数字呢:

a = 1.2000print(round(a,3))

结果:

1.2

所以round就有其局限性。
其他方式呢:

a = 1.2000print('%.2f'%a)

结果:

1.20 赋值

但是如果是要求赋值怎么办,可以这样写:

a = 1.2000b = ('%.3f'%a)print(b)

结果:

1.200 需要注意的问题

满足要求,但是如果需要用这种方式来进行下一步操作就会出现问题,例如:

a = 1.2000b = ('%.3f'%a)print("a:{0},type:{1}1".format(a,type(a)))print("a:{0},type:{1}1".format(b,type(b)))

结果:

1.200a:1.2,type:<class 'float'>1a:1.200,type:<class 'str'>1

这样写的话,数据类型会从float变为str,不注意的话在之后的调用的时候会报错,如果后续需要使用float类型的话,可以再转化一次:

a = 1.2000b = ('%.3f'%a)print("a:{0},type:{1}1".format(a,type(a)))print("a:{0},type:{1}1".format(b,type(b)))b = float(b)print("a:{0},type:{1}1".format(b,type(b)))

结果:

a:1.2,type:<class 'float'>1a:1.200,type:<class 'str'>1a:1.2,type:<class 'float'>1

目前还没有找到既能保留末尾的0,保存足够的小数点的数值类型的方法,如果有的话,请多多指教,万分感谢。

小数的表达方式:

f'{59.058:08.2f}' # '00059.06' 08.2f 其中8是全部数据有8位(算上逗号),其中0是不足8位的在前面用0填充,f'{59.058:8.2f}' # ' 59.06' 无0的话不足8位的在前面用空填充。f'{123459.06:08.2f}' # '123459.06' 如果全部数据比8大的话,会把小数点前的数据显示出来不受8的限制。

整数:

'{0}-{1}-{2}'.format(1,2,3) # 1-2-3'{2}-{1}-{0}'.format(1,2,3) # 3-2-1'{0}'.format([1,2,3]) # [1, 2, 3]'{0[0]}-{0[1]}-{0[2]}'.format([1,2,3]) # 1-2-3'{0}'.format(1) # '1''{0:f}'.format(1) # '1.000000''{0:d}'.format(1) # '1''{0:3d}'.format(1) # ' 1''{0:03d}'.format(1) # '001''{0:3}'.format(1) # ' 1'

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