diff --git a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/utils/MathUtils.java b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/utils/MathUtils.java
index c58a214..ba5e106 100644
--- a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/utils/MathUtils.java
+++ b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/utils/MathUtils.java
@@ -154,4 +154,12 @@ public class MathUtils {
         }
         return a.equals(b);
     }
+
+    // 判断a和b的值是否一致,精度为precision
+    public static boolean equalsFixed(BigDecimal a, BigDecimal b, int precision) {
+        if (a == null || b == null) {
+            return false;
+        }
+        return equals(a.setScale(precision, BigDecimal.ROUND_HALF_UP), b.setScale(precision, BigDecimal.ROUND_HALF_UP));
+    }
 }
diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java
index 038611e..f8eb4b0 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java
@@ -148,7 +148,7 @@ public class IotReceiveServiceImpl implements IotReceiveService {
         // 需要在设备未启动的时候做,否则可能有安全问题
         if (!isOpen) {
             // 若当前数据点的上报时间和设备内上次上报的时间不一样,但是定位一样,则重启设备
-            if (at.isAfter(device.getLastLocationTime()) && MathUtils.equals(device.getLongitude(), sys.getLon()) && MathUtils.equals(device.getLatitude(), sys.getLat())) {
+            if (at.isAfter(device.getLastLocationTime()) && MathUtils.equalsFixed(device.getLongitude(), sys.getLon(), 8) && MathUtils.equalsFixed(device.getLatitude(), sys.getLat(), 8)) {
                 String reason = String.format("设备不同时间的两次定位一样,重启设备。定位:%s,%s", sys.getLon(), sys.getLat());
                 deviceIotService.reboot(device, reason, true);
                 return 1;