Python retiene decimales - '%f'
'%.nf' % x (variable definida)
ejemplo:
a = 82.16332
print('%.1f'% a)
print('%.2f'% a)
print('%.3f'% a)
print('%.4f'% a)
print('%.10f'% a)
resultado de salida
Python retiene decimales - función de formato ()
A partir de Python2.6, se ha agregado una nueva función de cadena de formato str.format() , que mejora la función de formato de cadena.
La sintaxis básica es reemplazar el % anterior con {} y : .
La función de formato puede aceptar parámetros ilimitados y las posiciones pueden estar desordenadas.
ejemplo
print("{:.1f}".format(0.167123))
print("{:.2f}".format(0.167123))
print("{:.3f}".format(0.167123))
print("{:.4f}".format(0.167123))
print("{:.10f}".format(0.167123))
resultado de salida
Debido a que la posición de la función format() puede estar desordenada, también se puede escribir así
print(format(0.167123, '.1f'))
print(format(0.167123, '.2f'))
print(format(0.167123, '.3f'))
print(format(0.167123, '.10f'))
resultado de salida
Al observar los datos, se puede encontrar que los dos datos anteriores están 'redondeados'.
Python retiene decimales - función round()
El método round() devuelve el valor redondeado del número de coma flotante x.
Uso: redondo (número, n), n es "expresión numérica, que indica el número de dígitos desde el punto decimal".
Ejemplo
s = 1.15457321
print("round(80.23456, 2) : ", round(80.23456, 2))
print( round(1203245, 3))
print(round(s,10))
resultado de salida
Y para la función round() a veces hay algunos problemas, a veces no da la salida correcta
ejemplo
print(round(2.675,2))
print(round(8.875,2))
resultado de salida
Si sigue el 'redondeo', debería dar como resultado 2.68 , pero el resultado es 2.67, y el resultado de 8.875 es el valor de 'redondeo' 8.88
Para la función python round()
La función round en python redondea el valor decimal al número dado de dígitos, si no proporcionamos n (que es el número de dígitos después del decimal), el número se redondea al entero más cercano.
ejemplo
#int
print(round(12))
#float
print(round(66.6))
print(round(45.5))
print(round(92.4))
resultado de salida
Cuando se proporcione el segundo parámetro, si el parámetro proporcionado n>=5, el último dígito decimal se incrementará en uno hasta el valor redondeado, de lo contrario será igual al proporcionado
ejemplo
print(round(1.221, 2))
print(round(1.222, 2))
print(round(1.223, 2))
print(round(1.224, 2))
print(round(1.215, 2))
print(round(1.226, 2))
print(round(1.227, 2))
print(round(1.228, 2))
print(round(1.279, 2))
resultado de salida
Se puede ver que algunos acarreos son exitosos y otros no, por lo que esta función round() no es fácil de usar, pero el acarreo de enteros es correcto.
Por lo tanto, no se recomienda utilizar este método.
Python retiene decimales - math.floor
floor() Devuelve el entero redondeado de un número.
Para usar el método de suelo, debe introducir el módulo de matemáticas
floor()表示的是向下取舍
例子
import math
print("math.floor(-45.17) : ", math.floor(-45.17))
print("math.floor(100.12) : ", math.floor(100.12))
print("math.floor(100.72) : ", math.floor(100.72))
print("math.floor(119L) : ", math.floor(119))
print("math.floor(math.pi) : ", math.floor(math.pi))
输出结果
进行小数操作可以这样使用,先进行扩大数值的n次方,然后再除以n次方,即可得到’四舍五不入‘的数值
例子:(保留两位小数)
import math
print(math.floor(1.25754*10**2)/10**2)
输出结果
如果想要输出三位小数不进行‘四舍五入’,可以先乘10**3然后除以10**3
python保留小数——不进行四舍五入,简单粗暴法int()
例子
print(int(1.23456 * 1000) / 1000 )
输出结果
放大指定的倍数,然后取整,然后再除以指定的倍数。
可以利用上面的函数进行保留2位小数、3位小数、4位小数等