「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > MySQL の 10 進データ型を理解する

MySQL の 10 進データ型を理解する

2024 年 11 月 8 日に公開
ブラウズ:315

Understanding the Decimal Datatype in MySQLMySQL の Decimal データ型は、数値の精度が重要である金融関連のプロジェクトには不可欠です。最近、Ruby on Rails プロジェクトの 1 つでこのデータ型を操作しているときに問題が発生しました。私の経験と学んだことを共有しましょう。

課題: 範囲外の値エラー

プロジェクト中に、移行ファイルに Decimal フィールドを定義したところ、次のエラーが発生しました:

Out of range value for column 'db_field' at row 1

定義された範囲を超える値を挿入しようとしたため、このエラーが発生しました。これが私の移行ファイルのスニペットです:

t.decimal :rate, precision: 3, scale: 3, default: 0.0

この定義は、レート列に -0.999 ~ 0.999 の値を格納できることを意味します。スケール 3 に注目してください。これは、小数点以下が常に 3 桁あることを示しています。

精度とスケールを細分化する

MySQL では、Decimal データ型は Decimal(P,S) として定義されます。ここで、

  • P (精度): 合計桁数。
  • S (スケール): 小数点以下の桁数。

精度とスケールを決定する方法

適切な精度とスケールを決定するには、次の簡単な式を使用します:

Precision - Scale = Maximum digits before the decimal point

例:
12.345:

のような値を保存する必要がある場合
  • 小数点の前に 2 桁、小数点以下の後に 3 桁が必要です。
  • 合計桁数 (精度) は 5 です。
  • したがって、定義は Decimal(5,3) になります。

現実世界のアプリケーション

これが私のプロジェクトの例です:

t.decimal :rate, precision: 5, scale: 2, default: 0.0

この場合、999.99 までの値を保存する必要がありました。したがって、Decimal(5,2) では、小数点の前に 3 桁、後に 2 桁を指定できます。

さらに読む

詳細については、10 進データ型に関する MySQL ドキュメントを参照してください。これは、Decimal やその他の数値型の操作方法を理解するための優れたリソースです。

結論

理解する
MySQL で Decimal データ型を使用することは、アプリケーションで数値データを正確に処理するために不可欠です。正しい精度とスケールを設定することで、一般的なエラーを回避し、データの整合性を確保できます。この説明があなたのプロジェクトに役立つことを願っています!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/sonianand11/ Understanding-the-decmal-datatype-in​​-mysql-292c?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3