Selaa lähdekoodia

修复浮点型转整数错误

xx 1 vuosi sitten
vanhempi
sitoutus
5bf5ad9fb7
1 muutettua tiedostoa jossa 6 lisäystä ja 2 poistoa
  1. 6 2
      src/module/globalfuns.cpp

+ 6 - 2
src/module/globalfuns.cpp

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