2つの数値が同じであることがわかるように、任意の精度で比較を行うにはどうすればよいですか? Pythonでは、round()
のような関数を使用するので、Rustに相当するものを探しています。錆の2つのフロートと任意の精度レベルの比較
は、例えば、私が持っている:私の場合は
let x = 1.45555454;
let y = 1.45556766;
が、彼らは小数点以下2桁まで似ています。したがって、x
とy
は、比較の目的で1.46になります。
if x == y { // called when we match to 2 decimal places}
はさらなる問題を解明し、いくつかのコンテキストを与える:私はこれらをフォーマットすることができますが、それは確かに遅いので、等価性をチェックするための最良の錆方法、何です。これは本当にドルとセントの正確さです。したがって、通常python
には、すべての問題を伴うround()
関数を使用します。はい、私は浮動小数点表記の限界を認識しています。金額を計算する2つの関数があります。私はドルで計算し、セントの部分を最も近いペニーに処理する必要があります。
コミュニティに聞く理由は、私が自分自身を転がすと、パフォーマンスに打ち勝つことができ、それがこの側面です - なぜ私はRustを採用しているのでしょうか?プラス私は錆のドキュメントでround()と呼ばれるものを見ましたが、pythonsのバージョンとは異なり、ゼロのパラメータを取るようです。
http://stackoverflow.com/q/18686269/155423およびhttp://floating-point-gui.de/ – Shepmaster
@Shepmaster:「ラウンド」の言葉を考えると、私は後者それは... OPが望むものではないでしょう。 –
私は錆は分かりませんが、 'xy <0.002'のようなことをすることができます –