ホームページ  >  記事  >  ウェブフロントエンド  >  js は算術演算の正確な計算を実装します

js は算術演算の正確な計算を実装します

不言
不言オリジナル
2018-07-17 15:55:056839ブラウズ

正確な計算はプロジェクトにとって非常に重要ですが、JS で算術演算の正確な計算を実現するにはどうすればよいでしょうか?次の記事では、js で実装された正確な計算について説明します。

JS は正確な計算を実行できません

CRM で作業する場合、第 2 世代のレビュー要件のレビュー詳細ページです。ユーザーが入力した数値は、比例してさまざまな場所に表示される必要があります (バックエンドは 0.8 などの小数を渡します)。
dubheInvest = invest * (1 - 比率); の実行中に問題が見つかりました。詳細は次のとおりです。
サンプル コード:

console.log( 1 - 0.8 );  //输出 0.19999999999999996 
console.log( 6 * 0.7 );  //输出 4.199999999999999 
console.log( 0.1 + 0.2 );  //输出 0.30000000000000004 
console.log( 0.1 + 0.7 );  //输出 0.7999999999999999 
console.log( 1.2 / 0.2 );  //输出 5.999999999999999

上記の例からわかるように、ネイティブ JS の演算結果は必ずしも正確ではなく、精度が失われます。
解法

解法の原理は、浮動小数点数を10のn乗で乗算(拡張)し、浮動小数点数を整数に変換して対応する演算を実行し、最後にその結果を次の値で除算(減算)することです。の 10 n 倍。
原則の例:

正しい値を取得するには、console.log(1-0.8); を console.log((1 * 10 - 0.8 * 10) / 10); に変更します。
上記の原則に従って、いくつかのメソッドを実行できます。 encapsulated そんな悩みを解決します。以下に示すように (Math.pow(x, y); は次の y 乗を求めることを意味します)

以上がjs は算術演算の正確な計算を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。