(不全,只是记录自己暂时不知道的一些内容)
1.运算符号
print(10*3)
print(10**3) # 10的3次方
print(10/3)
print(10//3) # 取商
print(10 % 3) # 取余
-
round()函数的四舍五入规则是基于银行家舍入法(Bankers’ rounding),也称为偶数舍入。如果要舍弃的数字是5,而前面的数字是偶数,则舍入到最接近的偶数。如果前面的数字是奇数,则向上舍入到最接近的偶数。
-
对于负数,round()函数采用的是“远离零的方向舍入”(round away from zero)的方式
print(round(2.5)) # 2
print(round(3.5)) # 4
print(round(-2.5)) # -2
print(round(-3.5)) # -4
# 保留两位小数
print(round(1.7269, 2)) # 1.73
print(round(1.7259, 2)) # 1.73
print(round(1.7359, 2)) # 1.74
print(round(1.7249, 2)) # 1.72
print(round(1.7239, 2)) # 1.72
print(round(1.7349, 2)) # 1.73 为什么不是1.74呢
'''
答:print(round(1.7349, 2)) 的结果不是1.74,而是1.73。
这是因为Python的round函数在处理浮点数时,采用的是标准的四舍五入规则,
但在实际应用中,浮点数的精度问题会导致四舍五入的结果与预期有所差异。
具体来说,浮点数的精度问题使得1.7349在计算机内部的表示可能略小于实际值,
导致在进行四舍五入时,根据标准的四舍五入规则,应该舍去的是小数点后第三位数字3,
因此结果为1.73而不是1.74。
这种精度问题在计算机科学和数学中是一个普遍存在的问题,
因为浮点数在计算机内部的表示是近似的,而不是精确的。
尽管现代计算机和编程语言已经做了很多优化来减少这种误差,
但在某些情况下,尤其是涉及到金融计算或需要高精度的领域,
这种误差可能会成为问题。因此,对于需要高精度计算的场景,
可能需要使用特定的数据类型或库来处理浮点数,以确保计算的准确性
'''
解决办法:
使用decimal()函数,专门用于高精度的浮点运算
import decimal
print(round(1.535, 2)) # 1.53
print(round(decimal.Decimal('1.535'), 2)) # 1.54
print(round(decimal.Decimal('1.5346'), 2)) # 1.53
print(round(1.7349, 2)) # 1.73
print(round(decimal.Decimal('1.7349'), 2)) # 还是1.73 为什么不是1.74呢???这里还是没搞明白
print(round(decimal.Decimal('1.735'), 2)) # 1.74
import math
print(abs(-2.9)) # 2.9 可以是整数,浮点数,复数
print(math.fabs(2.9)) # 2.9 math.fabs(x)方法也是返回x的绝对值,但是返回的是浮点型的值。
print(math.ceil(2.2)) # 3 向上取整
x = input("x:") # input函数输入的是字符串
y = int(x)+1 # 这里需要强制转换
print(y)
2.截取[]的注意点和易错点
标签:02,1.74,decimal,python,浮点数,语法,1.73,print,round From: https://www.cnblogs.com/kakafa/p/18366069