diff --git a/src/module/globalfuns.cpp b/src/module/globalfuns.cpp index ef234a5..6c2764d 100644 --- a/src/module/globalfuns.cpp +++ b/src/module/globalfuns.cpp @@ -64,8 +64,12 @@ std::optional module::globalfuncs::toint(const sol::object& obj) sol::type t = obj.get_type(); switch (t) { case sol::type::number: - // 直接将数字转换为 int - return obj.as(); + double value = obj.as(); + // 检查小数部分是否为零 + if (std::floor(value) == value) { + return static_cast(value); + } + return std::nullopt; case sol::type::string: { // 尝试将字符串转换为 int std::string s = obj.as();