warning: argument to `int' from `lua_Number'
lua_tonumber関数を使用してこれらの警告が表示されます。何が問題ですか?これらのC++警告を取り除くにはどうすればいいですか?
warning: argument to `int' from `lua_Number'
lua_tonumber関数を使用してこれらの警告が表示されます。何が問題ですか?これらのC++警告を取り除くにはどうすればいいですか?
提供し、予備情報に基づいて、私の答えはこれです:
lua_Numberはdoubleです。だからintに変換することについて不平を言っている。
それを変換する最も簡単な方法はこれです:
lua_Number a = 3.7;
int b;
b = static_cast<int>(a+0.5)
この方法:あなたはそれを丸めるしたい場合、あなたはこのような何かを行うことができます
lua_Number a = 3.7;
int b;
b = static_cast<int>(a)
しかし、bは3になります接尾辞が0.5以上のすべての数字が丸められることを保証できます。
しかし、ここでどのような解決策を選ぶ必要がありますか? http://pgl.yoyo.org/luai/i/lua_tonumberから
私はたった今 'reinterpret_cast
これはタイプミスです。それは構文エラーです。 – Marlon
'
:
lua_Number lua_tonumber (lua_State *L, int index);
それは第二パラメータにint型を望んでいます。あなたの警告は、有益には、「int' from
lua_Numberへの議論」と述べています。だから、おそらくint型ではなく、第2引数の 'lua_Number'を渡しているでしょう。 'lua_Number'はdoubleです。
ルアのスタックのインデックス番号なので、ダブルを渡すことは意味をなさない。 lua_Numberを渡すとコードが間違っている可能性があります。
static_castを試しますか?通常は警告を抑制しますが、私はLuaに慣れていません。
そして、通常、問題をコード化します。 –
それは時々刻々と状況に依存します。警告が精度の低下に過ぎない場合、static_castは許容以上です。 – Frigo
精度の低下を修正することは、より受け入れられます。 –
lua_Number
のint
を使用する場合は、lua_tointeger
を使用してください。
問題を示すいくつかのコード例が役立ちます。 –
警告を生成するコード行を表示します。 – aroth
どのコンパイラ?しかし、luaはC++で大量の警告を生成する傾向があります。おそらくダブルスでしか動作していないluaと何か関係があり、あなたはintまたはその逆を渡しています。 –