Lua 返回错误的值

我有如下情况:

  1. 我在nlua中注册了一个c#函数。
  2. 在lua脚本中这个函数被调用:SomeFunction({Amount = 1})
  3. c#函数被调用,但此时Amount的值是一个任意巨大的双精度数。

我注册函数的代码如下所示:

Lua LuaInterface = new Lua();
someFunction = (LuaTable t) => DoSomething(t);
LuaInterface.RegisterFunction("SomeFunction", someFunction.Target, someFunction.Method);

如果我使用调试器,t变量的值可能是{{ Amount = -2,05689484611373E-178 }}

我花了大约两个小时的时间找到了代码中的错误(实际代码复杂得多),这只是我将问题简化后的情况。

点赞