js 加算、減算、乗算、除算の正確な計算方法のサンプルコード

js 加算、減算、乗算、除算の正確な計算方法のサンプルコード

序文

コンピュータの数値は浮動小数点であるため、計算プロセス中に取得されるデータは通常正確ではなく、そのためいくつかの配列操作を行うのは面倒です。ここでは、正確な計算を行う方法を記述します。

1つ目は加算です(ここでは2つのデータの追加を例に挙げます)

関数 add(arg1, arg2) {

	 arg1 = arg1.toString(), arg2 = arg2.toString(); // 入力データを文字列に変換します var arg1Arr = arg1.split("."), // 小数点から小数データを分割します arg2Arr = arg2.split("."),
   d1 = arg1Arr.length == 2 ? arg1Arr[1] : "", // 最初の数値の小数点の長さを取得します d2 = arg2Arr.length == 2 ? arg2Arr[1] : ""; // 2 番目の数値の小数点の長さを取得します var maxLen = Math.max(d1.length, d2.length); // 小数点の長さの大きい方の値を取得します var m = Math.pow(10, maxLen); // これは小数点の長さの 10 の累乗を表します。つまり、小数点の長さが 2 の場合、m の値は 100 です。小数点の長さが 3 の場合、m の値は 1000 です。わからない場合は、自分で API を調べてください
  var result = Number(((arg1 * m + arg2 * m) / m).toFixed(maxLen)); // 小数を整数に変換して加算し、乗算された 2 つの数値の倍数を削除して小数点を削除します。var d = arguments[2]; // ユーザーは、保持する小数点の長さを定義するために 3 番目のパラメーターを渡すかどうかを決定できます。return typeof d === "number" ? Number((result).toFixed(d)) : result;
}

加算(12.123, 12)

次に減算を行います(減算は実際には配列に別の数の負数を加算するものなので、ロジックは加算と同じです)

関数sun(arg1, arg2) {
add(arg1, -arg2) を返します
}

次は掛け算です

関数mul(arg1, arg2) {
var r1 = arg1.toString(), // 受信したデータを文字列に変換します r2 = arg2.toString(),
m、結果値、d = 引数[2];
m = (r1.split(".")[1] ? r1.split(".")[1].length : 0) + (r2.split(".")[1] ? r2.split(".")[1].length : 0); // 2 つの数値の小数点以下の合計を取得します // 積のアルゴリズムは、小数点を削除し、整数の乗算を実行してから、10 の累乗をすべて削除します resultVal = Number(r1.replace(".", "")) * Number(r2.replace(".", "")) / Math.pow(10, m);

戻り値の型は d !== "number" ですか? Number(resultVal) : Number(resultVal.toFixed(parseInt(d)));
}

最後に、引き算(割り算と掛け算は逆のプロセスなので、詳しく説明しません)

関数div(arg1, arg2) {
     var r1 = arg1.toString(),
      r2 = arg2.toString(),
      m、結果値、d = 引数[2];
     m = (r2.split(".")[1] ? r2.split(".")[1].length : 0) - (r1.split(".")[1] ? r1.split(".")[1].length : 0);
     resultVal = Number(r1.replace(".", "")) / Number(r2.replace(".", "")) * Math.pow(10, m);
     戻り値の型は d !== "number" ですか? Number(resultVal) : Number(resultVal.toFixed(parseInt(d)));
    }

要約する

js での加算、減算、乗算、除算の正確な計算方法についての記事はこれで終わりです。js での加算、減算、乗算、除算の正確な計算に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。皆様が今後も 123WORDPRESS.COM を応援してくれることを願っています。

以下もご興味があるかもしれません:
  • 小数の加算、減算、乗算、除算における精度の低下に対する JavaScript ソリューション
  • HTML+JS は、シンプルな計算機コード (加算、減算、乗算、除算) を実装します。
  • js の加算、減算、乗算、除算における精度低下の問題の解決
  • jsの加算、減算、乗算、除算の正確な計算の詳細な説明
  • JS で実装された加算、減算、乗算、除算の計算機の例
  • js 正確な加算、減算、乗算、除算の例
  • JavaScript の加算、減算、乗算、除算の簡単な例
  • 超シンプルな JS 計算機の例の説明 (加算、減算、乗算、除算の実装)

<<:  Node.js における非同期プログラミングの知識ポイントの詳細な説明

>>:  JavaScript/TypeScript で同時リクエスト制御を実装するためのサンプルコード

推薦する

超詳細なMySQL使用仕様の共有

最近、データベース関連の操作が多くなり、会社の既存の仕様はあまり包括的ではありません。インターネット...

CentOS 7 で rpm パッケージを使用して MySQL 5.7.18 をインストールする

最近、MySQL を使っています。Linux での mysql-installation という記事...

マークアップ言語 -

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

deepin20 で NVIDIA クローズドソース ドライバーをインストールするための詳細な手順

ステップ1: ディープ「グラフィックドライバー」をインストールするdeepin v20にはデフォルト...

MYSQLテーブルの包括的な概要

目次1. テーブルを作成する1.1. テーブルを作成するための基本構文1.1.1. シンプルなテーブ...

大きな MySQL テーブルに列を追加する方法

質問は https://www.zhihu.com/question/440231149 から参照さ...

テキストスクロール後の自動停止効果の例

効果は非常にシンプルで、次のコードを自分のページにコピーして実行するだけです。コードをコピーコードは...

Vue フィルターの使用とタイムスタンプ変換の問題

目次1. 概念をすぐに認識する: 2. ローカルフィルター: 3. グローバルフィルター: 4. 拡...

MySQL サーバー IO 100% 分析および最適化ソリューション

序文ストレス テスト中に、リソース使用のボトルネックによって発生する最も直接的なパフォーマンスの問題...

uni-app で scss を使用するサンプル コード

遭遇した落とし穴私は午後中ずっと、uni-app で scss を使用する際の落とし穴を解決すること...

MySQLテーブルシャーディングとパーティショニングの具体的な実装方法

縦型テーブル垂直テーブル分割とは、多数の列を持つテーブルを複数のテーブルに分割することを意味します。...

Access_Tokenの統合管理を実現するミニプログラム開発

目次TOKEN タイマーリフレッシュ2. access_tokenの内部設計2.1 access_t...

HTMLでのラジオ値の取得、割り当て、登録の詳細な説明

1. ラジオのグループ化名前が同じであれば、それらはグループであり、つまり、次のようにグループ内で選...

Win10 + Ubuntu20.04 LTS デュアルシステムブートインターフェースの美化

エフェクト表示組み込みのブートインターフェースがあまりにも醜いので、テーマをダウンロードして美しくし...

よく忘れられがちな CSS のヒント 26 選

これは、よく使われるけれども忘れられがちな CSS 実装方法のコレクションです。抜けや追加があれば、...