整数 int:不可变【没有小数部分】
浮点数 float:不可变【有小数部分】
浮点数转为整数:int、round
int 【直接舍弃小数部分,返回类型为int】
int(1.23) # 结果:1
int(1.78) # 结果:1
round 【四舍五入 正好是五凑偶数,不设置第2个参数返回类型为int】
round(1.23) # 结果:1
round(1.78) # 结果:2
round(1.5) # 结果:2
round(2.5) # 结果:2
整数转为浮点数:float 【返回类型为float】
float(1234) # 结果:1234.0
设置千分位:format 【返回类型为str】
format(1234, ",") # 结果:'1,234'
format(1234.1234, ",") # 结果:'1,234.1234'
format(1234.5678, ",") # 结果:'1,234.5678'
设置百分号:format 【返回类型为str】
# 百分号,不保留小数部分,四舍五入 正好是五凑偶数
format(0.8,".0%") # 结果:'80%
format(0.801234,".0%") # 结果:'80%'
format(0.805678,".0%") # 结果:'81%'
format(0.805,".0%") # 结果:'80%'
format(0.815,".0%") # 结果:'82%'
# 百分号,保留2位小数部分,四舍五入 正好是五与预期有偏差
format(0.8,".2%") # 结果:'80.00%
format(0.801234,".2%") # 结果:'80.12%'
format(0.805678,".2%") # 结果:'80.57%'
format(0.80565,".2%") # 结果:'80.56%'
format(0.80555,".2%") # 结果:'80.55%'
format(0.80545,".2%") # 结果:'80.55%'
指定小数位数:round、%、format
round 【第2个参数指定小数位数,设置第2个参数返回类型为float】
# 第2个参数设为0,返回类型依然为float,仍有1位小数且为0。四舍五入 正好是五凑偶数
round(1234.49,0) # 结果:1234.0
round(1234.51,0) # 结果:1235.0
round(1234.5,0) # 结果:1234.0
round(1233.5,0) # 结果:1234.0
round(1232.5,0) # 结果:1232.0
# 指定1位小数,四舍五入,正好是五与预期有偏差
round(1234.149,1) # 结果:1234.1
round(1234.151,1) # 结果:1234.2
round(1234.15,1) # 结果:1234.2
round(1234.25,1) # 结果:1234.2
round(1234.35,1) # 结果:1234.3
# 指定2位小数,四舍五入,正好是五与预期有偏差
round(1234.1349,2) # 结果:1234.13
round(1234.1351,2) # 结果:1234.14
round(1234.145,2) # 结果:1234.14
round(1234.135,2) # 结果:1234.13
round(1234.105,2) # 结果:1234.11
% 【返回类型为str】
# 不保留小数,四舍五入,正好是五凑偶数
"%.0f" % (1234.149) # 结果:'1234'
"%.0f" % (1234.51) # 结果:'1235'
"%.0f" % (1234.5) # 结果:'1234'
"%.0f" % (1235.5) # 结果:'1236'
"%.0f" % (1230.5) # 结果:'1230'
"%.0f" % (1231.5) # 结果:'1232'
# 指定1位小数,四舍五入,正好是五与预期有偏差
"%.1f" % (1234.149) # 结果:'1234.1'
"%.1f" % (1234.151) # 结果:'1234.2'
"%.1f" % (1234.15) # 结果:'1234.2'
"%.1f" % (1234.25) # 结果:'1234.2'
"%.1f" % (1234.35) # 结果:'1234.3'
# 指定2位小数,四舍五入,正好是五与预期有偏差
"%.2f" % (1234.1349) # 结果:'1234.13'
"%.2f" % (1234.1351) # 结果:'1234.14'
"%.2f" % (1234.145) # 结果:'1234.14'
"%.2f" % (1234.135) # 结果:'1234.13'
"%.2f" % (1234.105) # 结果:'1234.11'
format 【返回类型为str】
# 整数指定2位小数
format(1234,".2f") # 结果:'1234.00'
# 整数指定2位小数(且有千分位)
format(1234,",.2f") # 结果:'1,234.00'
# 浮点数不保留小数(但有千分位),小数部分:四舍五入 正好是五凑偶数
format(1234.49,",.0f") # 结果:'1,234'
format(1234.51,",.0f") # 结果:'1,235'
format(1234.5,",.0f") # 结果:'1,234'
format(1233.5,",.0f") # 结果:'1,234''
# 浮点数指定1位小数,小数部分:四舍五入 正好是五与预期有偏差
format(1234.149,".1f") # 结果:'1234.1'
format(1234.151,".1f") # 结果:'1234.2'
format(1234.15,".1f") # 结果:'1234.2'
format(1234.25,".1f") # 结果:'1234.2'
# 浮点数指定2位小数,小数部分:四舍五入 正好是五与预期有偏差
format(1234.1349,".2f") # 结果:'1234.13
format(1234.1351,".2f") # 结果:'1234.14'
format(1234.135,".2f") # 结果:'1234.13'
format(1234.125,".2f") # 结果:'1234.12'
format(1234.115,".2f") # 结果:'1234.12'
数字格式化:format 【固定域宽显示数字,返回类型为str】
{: 填充字符 对齐方式 固定域宽 [千分位 小数点 小数位数] 数据类型 }
对齐方式:> 右对齐(默认)、^ 居中对齐、< 左对齐。
数字类型:d 整数,f 浮点数
"{:*^10d}".format(1234) # 结果:'**123456**'
"{:*^10,.2f}".format(1234) # 结果:'*1,234.00*'
"{:10,.2f}".format(1234) # 结果:' 1,234.00'
"{:10.1%}".format(0.801234) # 结果:' 80.1%'
数字字符串转为数字类型:int、float
int 【条件:字符串中只有整数,没有小数,没有千分位。否则,报错。返回类型为int】
int("1234") # 结果:1234
int("1,234") # 报错:ValueError: invalid literal for int() with base 10
int("1234.12") # 报错:ValueError: invalid literal for int() with base 10
float 【条件:字符串中没有千分位。否则,报错。返回类型为float】
float("1234") # 结果:1234.0
float("1234.00") # 结果:1234.0
float("1234.10") # 结果:1234.1
float("1234.12") # 结果:1234.12
float("1234.1234") # 结果:1234.1234
float("1,234.12") # 报错:ValueError: could not convert string to float
注意
一、float(...)
1、没有小数部分或者小数部分全为0,结果:小数点后只有一位小数,且为0;
2、1位小数或1位小数以上的,末尾的0会自动舍弃。
二、round(...)
1、第2个参数指定小数位数,设置第2个参数返回类型为float,不设置第2个参数返回类型为int;
2、第2个参数若为0,返回类型依然是float,有一位小数且为0;
3、若不保留小数(即小数位数为0),不设置第2个参数,返回类型为int。
三、指定小数位数
1、不保留小数(即小数位数为0),四舍五入 正好是五凑偶数;
2、保留小数位数(即小数位数>=1),四舍五入 正好是五与预期有偏差;