私がプログラミングを覚えている限り、浮動小数点数を比較して平等にしないように教えられました。今、LuaのプログラミングについてLua を読んでいるとnumber
、次のことがわかりました。
数値型は、実数(倍精度浮動小数点数)を表します。Luaには整数型は必要ありません。浮動小数点演算エラーについては誤解が広まっており、一部の人々は、単純な増分でさえ浮動小数点数で奇妙になることがあると恐れています。実際、整数を表すためにdoubleを使用すると、丸め誤差はまったくありません(数値が100,000,000,000,000を超えない限り)。具体的には、Lua数値は、丸めの問題なしで任意の長整数を表すことができます。さらに、最新のCPUのほとんどは、整数演算と同程度(またはそれ以上)の浮動小数点演算を実行します。
それはすべての言語に当てはまりますか?基本的に、倍精度浮動小数点を超えない場合、整数演算で安全ですか?または、質問のタイトルに沿って、Luaがそのnumber
タイプで行う特別なことはありますか?整数型と浮動小数点型の両方としてうまく機能していますか?