JSではMathを使用する.round(x)toFixed()の代わりに四捨五入して1ビットの小数点を保持する精度の不正確な解決方法


実际の生产环境の中で、注文量が増えた场合の総価格は1.65、22.85などの小数点の2位が5の场合、1位の小数を残した后に四捨五入していないことを発见して、得た値は1.6と22.8で、その原因はやはり自分がテストした时のデータ量が全面的ではありません.
問題を発見するのはいつも解決しなければならないので、多くの四捨五入に関する資料を探して、この方面がこの問題に遭遇したことがある人は少ないようで、それから自分でコードを変えて、toFixed()関数を使わずに四捨五入して1位の小数を保留することを決定しました.Mathを使います.round(x)は数値変換を行う.
Math.round(x)におけるround()メソッドは、1つの数字を最も近い整数に丸めることができる.たとえば、2.5は3に丸められ、-2.5は-2に丸められます.
では、小数を1桁残した場合、私たちはどのように使用すればいいですか?次のようになります.
var f = Math.round(totalPrice * 10)/10
 :Math.round(v1 / v3)

まず得られた総額に10を乗じる、その後Mathを用いる.round()関数は最も近い整数を取ってから、10で割ると正しい値が得られます.1.65*10=16.5のように、整頓して17になり、10で割ると1.7になり、1桁の小数を残して四捨五入することができ、同じように2桁の小数を残しても100を乗じて整頓してから100で割るとよい.