質問 今日、プロジェクト関数を書いていたとき、金額の統計計算を行い、単位を変換する必要がありました。そこで、次の関数に似たステートメントを書いたのですが、取得したデータは小数点以下 4 桁で、通常は 2 桁しか必要ありません。 データの検索と精度変換を続けます。しばらく検索した後、データに満足できませんでした。テストを続けます テスト バグや未知の状況をテストするときは、再現を最小限に抑え、テストを合理化し、他のステートメントが結果に干渉しないようにする必要があります。
また、3/4 台のデバイスで実行され、異なる MySQL バージョン環境でも同じ結果が得られます。 したがって、MySQL では、乗算と除算の小数点以下の精度が異なることがわかります。 国内のフォーラムでは適切な情報が見つからなかったので、海外のフォーラムに行って情報を探したり、質問したり、コミュニケーションをとったりしました。 答え まずは、他の先輩方の回答とアドバイスに感謝したいと思います。また、問題のトラブルシューティングを可能な限り詳細に記録します。 文明は記憶を持っているからこそ生き残るのです。この記事がより多くの友人の役に立つことを願っています。
テスト
控訴の結論と一致します。ご指導いただいた外国人の先輩方に感謝いたします。 除算は2桁の精度を使用します 問題を解くためにどうしても除算を使用する必要がある場合は、精度を変換する関数を使用できます。
DECIMAL のパラメータは Baidu で調べることができます。基本的にテーブル構造を作成したことがある人なら誰でも理解できます。 @x と @y は除数と被除数です。 同時に、SQL で毎回関数計算を使用しなくても済むように、MySQL でデフォルトの除算精度を設定できるかどうかも疑問に思いました。 先輩の回答: 予期しない状況が時々発生するのを避けたい場合は、毎回型変換を強制する必要があります。 MySQL関連のドキュメント https://dev.mysql.com/doc/refman/8.0/en/算術関数.html
除算の精度ルール 上記の文献から、2 つの数値を計算に使用する場合、結果の精度は最初のオペランドの精度 + システム変数 div_precision_increment の値によって決まることがわかります。たとえば、この例の 1 の精度は 0 であり、システム変数の精度はデフォルトで 4 桁であるため、結果は 4 桁の精度になります。
したがって、デフォルトの変数を変更することで、除算のデフォルトの精度を変更することもできます。 今テストする
要約する MySQL の乗算と除算の精度の不一致、および除算後の小数点以下 4 桁に関するこの記事はこれで終わりです。MySQL の乗算と除算の精度に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: nginxリバースプロキシによるセッション障害の問題の解決策
前に書いた内容: ビジネス ロジックの判断を行うために、最新のトランザクション ID を表示する必要...
Antd+react+webpackは、多くの場合、Reactテクノロジースタックに基づくフロントエ...
このキー属性の機能は何ですか?まずは公式の説明を見てみましょう。 kekey 属性は主に、新しいノー...
この質問は、MySQL の権限に関する WeChat グループのネットユーザー間の議論です。次のよう...
デバッグブランチプロジェクトの通常の開発中に、以前にリリースされたバージョンにバグがある場合がありま...
1. 事件の背景:仕事上、Ubuntu への vscode リモート接続を使用する必要があります。 ...
ボタンは頻繁に使用されます。ここでは、イベント処理メソッドを整理し、実装方法が多数あることを発見しま...
<br />では、CSS 構文を巧みに使用してテーブルを美しくする方法を見てみましょう。...
<meta http-equiv="X-UA-compatible" co...
CentOS7 64でのMySQL5.6.40のインストール手順1) 以前にインストールしたMySQ...
基本構造:コードをコピーコードは次のとおりです。 <ダウンロード> <dt>...
第1章: keepalivedの紹介VRRP プロトコルの目的は、静的ルーティングの単一点障害問題を...
今日も Watch アプリのデザインに関する話です。私はケーススタディが大好きなので、同じトピックを...
目次charとvarcharの違いcharとvarcharの違い上記は、MySQL における cha...
CSS3 の 3D 効果を使用して立方体を作成する方法を学ぶと、3D シーンの回転と変位のプロパティ...