# FAST_LIO指数运算scale因整数除法归零导致计算错误

> 原文链接：https://robotics.hellobike.com/pitfalls/2023-11-06-fast-lio-273
> 频道：pitfalls | 更新日期：2023-11-06 | 标签：auto, github-issue, fast_lio
> 核心摘要：FAST_LIO中scalar_type(1/2)触发编译期整数除法致scale为0，需改为浮点字面量或显式转换修复。

# FAST_LIO指数运算scale因整数除法归零导致计算错误

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[bug: the scale of the exponential value is zero](https://github.com/hku-mars/FAST_LIO/issues/273)（GitHub hku-mars/FAST_LIO #273）

**状态**：有绕过办法

## 问题

在FAST_LIO代码的指数运算部分，`scalar_type(1/2)`用于类型转换，但`1/2`在编译期按整数除法计算结果为0，导致无论模板实例化为int、float还是double，scale值恒为0，引发数值计算异常。

## 环境

FAST_LIO算法库，C++模板类环境，涉及指数运算模块的标量类型转换逻辑。

## 解决办法

1. 全局搜索代码中的 `scalar_type(1/2)` 表达式。
2. 将整数除法修改为浮点除法，例如替换为 `scalar_type(1.0/2.0)` 或 `scalar_type(0.5)`。
3. 确保修改后的字面量类型与 `scalar_type` 兼容，避免隐式截断。
4. 重新编译验证指数运算结果是否恢复正常非零值。

讨论原作者：@lucabart97 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub hku-mars/FAST_LIO #273：bug: the scale of the exponential value is zero](https://github.com/hku-mars/FAST_LIO/issues/273)