データテーブルで武器のステータス表を作っているのですが、余計な補正が自動で掛けられて困っています。
例えば22.2と打つと22.200001に補正されたりなどです。補正される値も数字によってバラバラのようで+0.000001されたり-0.000002されたり不安定のようです。
参考になるか分かりませんが表はUE4で作ったデータテーブルをUE4上で直接いじって作っています。変数はFloat型です。
設定か何かでこの補正をオフにすることはできますか?
よろしくお願いします。
データテーブルで武器のステータス表を作っているのですが、余計な補正が自動で掛けられて困っています。
例えば22.2と打つと22.200001に補正されたりなどです。補正される値も数字によってバラバラのようで+0.000001されたり-0.000002されたり不安定のようです。
参考になるか分かりませんが表はUE4で作ったデータテーブルをUE4上で直接いじって作っています。変数はFloat型です。
設定か何かでこの補正をオフにすることはできますか?
よろしくお願いします。
Float(浮動小数点数)はもともと誤差があるものです。
これは2進数における小数の扱いに起因します…が、ここではその説明は省きます。
補正されているわけではないので、オンオフできるようなものではありません。
なお、これはUE4に限ったことではなく、Floatを扱うプログラム言語全てに共通する問題です。
ピッタリな数字が欲しい場合は、読み込み時か最終結果のときに丸めると良いでしょう。
(よほど複雑な計算をしない限り、そこまで誤差は発生しないと思います)
自分でも調べてみて何となくですが理解できました。
今回は読み込み時にroundを使って四捨五入することにしました。
回答ありがとうございました。