伙计们,我的四舍五入有点问题。
我会将数字四舍五入到最接近的5的倍数。
这里有一些例子:
4 -> 0
67 -> 65
23 -> 20
44 -> 40
59 -> 55
我尝试了不同的方法,但我做不到。
有什么方法可以做到吗?
答案 0 :(得分:2)
假设您的数字以整数格式存储,则可以为此使用整数除法:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import glob
import matplotlib.cm as cm
files = sorted(glob.glob('mesh_files/*.vtk'))
mesh = []
fig = plt.figure(figsize = (16, 10))
ax = plt.axes(projection = '3d')
colors = cm.rainbow(np.linspace(0, 1, len(files)))
for file in files:
mesh.append(meshio.read(file).points)
x = mesh[-1][:, 0]
y = mesh[-1][:, 1]
z = mesh[-1][:, 2]
plt.scatter(x, y, z, color = colors[files.index(file)])
答案 1 :(得分:0)
如果您具有类型为 int 的变量,则可以利用以下事实:将它们与另一个 int 相除会得到一个整数,因此如果再次乘以这个号码,你 得到你想要的。
所以:
int a = 59;
std::cout << ((a / 5) * 5) << "\n";
将输出55。
如果值未存储为整数,则可以在执行除法之前将其强制转换:
float a = 59;
std::cout << ((static_cast<int>(a) / 5) * 5) << "\n";