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

王林
リリース: 2024-08-22 14:33:47
オリジナル
1280 人が閲覧しました

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

以上がMySQL の 10 進データ型を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート