大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
对于python的初学者,通常情况下, 只需要输出结果符合预期即可,所以通常情况下,print
就能够满足需求。
但是如果对于数据流转的情况下,我一开始没有找到合适的方法:
例如,我想把1.2000保留三位有效数字,如果按照其他方法:
a = 1.2345
print(round(a,3))
输出的结果是:
1.234
末尾有0
但是如果是要将1.2000保留三位有效数字呢:
a = 1.2000
print(round(a,3))
结果:
1.2
所以round
就有其局限性。
其他方式呢:
a = 1.2000
print('%.2f'%a)
结果:
1.20
赋值
但是如果是要求赋值怎么办,可以这样写:
a = 1.2000
b = ('%.3f'%a)
print(b)
结果:
1.200
需要注意的问题
满足要求,但是如果需要用这种方式来进行下一步操作就会出现问题,例如:
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)))
结果:
1.200
a:1.2,type:<class 'float'>1
a:1.200,type:<class 'str'>1
这样写的话,数据类型会从float
变为str
,不注意的话在之后的调用的时候会报错,如果后续需要使用float
类型的话,可以再转化一次:
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)))
结果:
a:1.2,type:<class 'float'>1
a:1.200,type:<class 'str'>1
a: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'
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169790.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...