首页 > 解决方案 > 将传感器读数限制为小数点后 4

问题描述

我是 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'

标签: pythonraspberry-pi

解决方案


尝试:

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.8789

推荐阅读