题目
代码
h = (2 * 150) / 15
s = ((15 + 25) * h) / 2
print('%.2f' % s)
笔记
使用占位符方法保留小数
%g
,科学计数法输出小数,会舍弃无效的部分
print("%g"%(1.2000004))
print("%.2g"%(1.2000004))
# 输出结果
1.2
1.2
%f
,直接输出小数,不对无效数字进行处理
print("%f"%(1.4))
print("%.2f"%(1.4))
print("%f"%(1.2000004))
print("%.2f"%(1.2000004))
# 输出结果
1.400000 # 不限制位数时默认保留6位
1.40
1.200000
1.20
%d
,保留整数
print("%d"%(1.2000004))
print("%.2d"%(1.2000004))
# 输出结果
1
01
%s
,表示字符串占位
print("%s"%(1.2000004))
# 输出结果
1.2000004
使用round方法保留小数
语法
round( x [, n] )
,round()可以对浮点数进行四舍五入取值。其中x表示待处理数值,n表示要保留的位数。
示例1
print(round(2.342343, 2))
print(round(2.345343, 2))
print(round(2.675, 2))
print(round(2.6753, 2))
# 输出结果
2.34
2.35
2.67
2.68
查阅相关资料了解,在计算机中,浮点数的精度不能准确表达,所以round()函数对小数部分进行了断截处理,所以会出现当保留位置后方有一位≥5的数是不进行四舍五入,有两位以上时才会进行四舍五入。
个人对此还是感到费解,所以暂且记录下来,在应对此类情况时注意这个问题。
示例2,当n=0时
print(round(123.45,0))
print(round(123.55,0))
# 输出结果
123.0
124.0
当n=0时,会对小数部分向整数部分四舍五入,最后返回一个浮点数。
示例3,当n=-1时
print(round(123.45,-1))
print(round(125.45,-1))
print(round(125.55,-1))
# 输出结果
120.0
130.0
130.0
当n=-1时,只对整数部分进行四舍五入,仍然返回一个浮点数。
参考资料
python保留2位小数
Python round() 函数——菜鸟教程
Python 中关于 round 函数的小坑——菜鸟教程