この要件は検索機能から来ています。ページ上のデータの単位は m で、サーバーはそれを cm で受け取ります。元々は *100 をサーバーに送信するだけでした。その結果、受験生は次のようなゴーストを発見しました。バグ:
誰もが知っているように、js では 0.1+0.2!==0.3 になります。js は倍精度浮動小数点を使用するため、コンピューターに保存されているデータのエンコードでエラーが発生します。
この問題の要求は、ユーザーが小数点以下 2 桁を入力できるようにすることです。プロジェクトには、入力を 2 桁のみに制限するカスタム コマンドがあります。トラブルシューティングを行うと、入力された小数点以下 2 桁が入力された場合にのみ問題が発生することがわかります。が 5 より大きい場合、上記のゴースト バグが表示されます。たとえば、(15.99) などです。(15.33) にはこの種の問題は発生しません...、私はオンラインに行きたくて、Math.round( で問題を解決しました)値 * 100) 。
次に、小数点以下 2 桁を保持するメソッドを記録します。
fomatFloat(src) { return Math.round(src * Math.pow(10, 2)) / Math.pow(10, 2); }
上の数字 2 は、繰り上げて再パッケージ化できる桁数と、保持して送信する必要がある 10 進数の桁数です。
それを覚えて、バグを修正してください。