我是Python的新手。我正在获取传感器读数,它有太多的十进制位(x.xxxxxxxx),我想把读数限制为4个小数位(x.xxxx)。
from altimu10v5.lsm6ds33 import LSM6DS33
from altimu10v5.lis3mdl import LIS3MDL
from altimu10v5.lps25h import LPS25H
from time import sleep
lsm6ds33 = LSM6DS33()
lsm6ds33.enable()
lps25h = LPS25H()
lps25h.enable()
lis3mdl = LIS3MDL()
lis3mdl.enable()
while True:
#print(lsm6ds33.get_accelerometer_raw())
print("{:.2f}".format.lsm6ds33.get_accelerometer_g_forces())
sleep(0.4)当我运行这段代码时,我会收到以下错误消息:
" attribute error : ' builtin_function_or_method' object has no attribute 'lsm6ds33'
发布于 2019-05-31 12:02:46
尝试:
print("{:.4f}".format(lsm6ds33.get_accelerometer_g_forces()))编辑:在您希望使用string.format()的值数组的情况下,使用for循环迭代每个值,并一次格式化它们。就像这样:
# Assuming "lsm6ds33.get_accelerometer_g_forces()" returns the array [-0.5555, -0.78788, 0.878888]...
accelArray= lsm6ds33.get_accelerometer_g_forces() #temp variable to hold the array
for accelNumber in accelArray:
print("{:.4f}".format(accelNumber))给定数组-0.5555、-0.78788、0.878888,上面的循环将输出:
-0.5555
-0.7879
0.8789https://stackoverflow.com/questions/56394687
复制相似问题