Python round() 删除尾随零
Python round() to remove trailing zeros
下面的代码用于使用梯度下降找到x*
,这里的问题是req8
的最终结果是-1.00053169969469
当我四舍五入时,结果是 -1.00000000000000
.
我如何舍入 -1.0
或 -1.00
而不是 而 使用任何其他模块?
from sympy import *
import numpy as np
global x, y, z, t
x, y, z, t = symbols("x, y, z, t")
def req8(f, eta, xi, tol):
dx = diff(f(x), x)
arrs = [xi]
for i in range(100):
x_star = arrs[-1] - eta * round(dx.subs(x, arrs[-1]), 7)
if abs(dx.subs(x, x_star)) < tol:
break
arrs.append(x_star)
print(arrs[-1])
print(round(arrs[-1], 2))
def f_22(x):
return x**2 + 2*x - 1
req8(f_22, 0.1, -5, 1e-3)
使用 format
函数打印具有所需位数的舍入结果(在下面的示例中为 2):
print("{:.2f}".format(round(arrs[-1], 2)))
编辑: 正如@SultanOrazbayev 所指出的,这里不再需要四舍五入,您可以使用以下表达式打印结果:
print("{:.2f}".format(arrs[-1]))
下面的代码用于使用梯度下降找到x*
,这里的问题是req8
的最终结果是-1.00053169969469
当我四舍五入时,结果是 -1.00000000000000
.
我如何舍入 -1.0
或 -1.00
而不是 而 使用任何其他模块?
from sympy import *
import numpy as np
global x, y, z, t
x, y, z, t = symbols("x, y, z, t")
def req8(f, eta, xi, tol):
dx = diff(f(x), x)
arrs = [xi]
for i in range(100):
x_star = arrs[-1] - eta * round(dx.subs(x, arrs[-1]), 7)
if abs(dx.subs(x, x_star)) < tol:
break
arrs.append(x_star)
print(arrs[-1])
print(round(arrs[-1], 2))
def f_22(x):
return x**2 + 2*x - 1
req8(f_22, 0.1, -5, 1e-3)
使用 format
函数打印具有所需位数的舍入结果(在下面的示例中为 2):
print("{:.2f}".format(round(arrs[-1], 2)))
编辑: 正如@SultanOrazbayev 所指出的,这里不再需要四舍五入,您可以使用以下表达式打印结果:
print("{:.2f}".format(arrs[-1]))