如何正确将 Lua 5.2.3 中的 lua_number 从 double 改为 float

我希望 lua_number 得到的是 float 而不是 double。我知道我需要在 luaconf.h 中更改一些内容,但我不知道该改什么。我正在使用 Lua 5.2.3 和 Visual Studio C ++。

点赞
用户646619
用户646619

luaconf.h

/*
** {==================================================================
@@ LUA_NUMBER 是 Lua 中数字类型。
** 仅在你想用不同于 double 的数字类型构建 Lua 时,更改以下定义。
** 你也许需要更改 `lua_number2int` 和 `lua_number2integer`。
** ===================================================================
*/

#define LUA_NUMBER_DOUBLE
#define LUA_NUMBER  double

实际上,这是 Lua 5.1 的 luaconf,但是 5.2 的版本应该类似。

2014-01-24 15:53:59
用户107090
用户107090

你需要编辑 luaconf.h 并将以下内容改为:

  • LUA_NUMBER 改为 float
  • LUA_NUMBER_SCAN 改为 "%f"
  • LUA_NUMBER_FMT 改为 "%.7g"
  • l_mathop(x) 改为 (x##f)
  • 修改 lua_str2number 以使用 strtof

对于最后两个,你可能需要一个支持 C99 标准(部分)的 C 编译器。

2014-01-24 16:12:26