python 保留小数位数不够补0 |
您所在的位置:网站首页 › python整数补零 › python 保留小数位数不够补0 |
大家好,又见面了,我是你们的朋友全栈君。 对于python的初学者,通常情况下, 只需要输出结果符合预期即可,所以通常情况下,print就能够满足需求。 print但是如果对于数据流转的情况下,我一开始没有找到合适的方法: 例如,我想把1.2000保留三位有效数字,如果按照其他方法: 代码语言:javascript复制a = 1.2345 print(round(a,3))输出的结果是: 代码语言:javascript复制1.234末尾有0但是如果是要将1.2000保留三位有效数字呢: 代码语言:javascript复制a = 1.2000 print(round(a,3))结果: 代码语言:javascript复制1.2所以round就有其局限性。 其他方式呢: 代码语言:javascript复制a = 1.2000 print('%.2f'%a)结果: 代码语言:javascript复制1.20赋值但是如果是要求赋值怎么办,可以这样写: 代码语言:javascript复制a = 1.2000 b = ('%.3f'%a) print(b)结果: 代码语言:javascript复制1.200需要注意的问题满足要求,但是如果需要用这种方式来进行下一步操作就会出现问题,例如: 代码语言:javascript复制a = 1.2000 b = ('%.3f'%a) print("a:{0},type:{1}1".format(a,type(a))) print("a:{0},type:{1}1".format(b,type(b)))结果: 代码语言:javascript复制1.200 a:1.2,type:1 a:1.200,type:1这样写的话,数据类型会从float变为str,不注意的话在之后的调用的时候会报错,如果后续需要使用float类型的话,可以再转化一次: 代码语言:javascript复制a = 1.2000 b = ('%.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)))结果: 代码语言:javascript复制a:1.2,type:1 a:1.200,type:1 a:1.2,type:1目前还没有找到既能保留末尾的0,保存足够的小数点的数值类型的方法,如果有的话,请多多指教,万分感谢。 小数的表达方式: 代码语言:javascript复制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的限制。整数: 代码语言:javascript复制'{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'发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169790.html原文链接:https://javaforall.cn |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |