MySQL データ型における DECIMAL の使用例の詳細な説明

小云云
リリース: 2017-12-08 12:00:16
オリジナル
2678 人が閲覧しました

MySQL のデータ型 (INT、FLOAT、DOUBLE、CHAR、DECIMAL など) にはそれぞれ独自の関数があります。以下では、MySQL データ型における DECIMAL 型の関数と使い方を主に紹介します。この記事では、MySQL データ型における DECIMAL の詳細な使用例に関する関連情報を中心に紹介します。この記事が皆様のお役に立てれば幸いです。また、必要な友人が参考になれば幸いです。

通常、浮動小数点列に割り当てられた値は、この列で指定された 10 進数に丸められます。 1. 2 3 4 5 6 を FLOAT(8, 1) 列に格納すると、結果は 1. 2 になります。 FLOAT(8, 4) の列に同じ値が格納されている場合、結果は 1. 2 3 4 6 となります。

これは、可能な限り正確な値を取得するには、浮動小数点列を十分な桁数で定義する必要があることを意味します。 1000 分の 1 までの精度が必要な場合は、小数点以下 2 桁のみになるように型を定義しないでください。

MySQL3.23 では浮動小数点値の処理に例外があり、FLOAT(4) と FLOAT(8) のパフォーマンスが変更されました。これら 2 つの型は、値が指定された形式で格納されるという意味で、単精度 (4 バイト) と倍精度 (8 バイト) になります (ハードウェアの制限のみに従う)。

DECIMAL 型は、DECIMAL が実際には文字列として格納される FLOAT および DECIMAL とは異なります。 DECIMAL の最大値の範囲は DOUBLE と同じですが、有効な値の範囲は M と D の値によって決まります。 D を固定して M を変更すると、M が大きくなるにつれてその値の範囲は広くなります。表 2-7 の最初の 3 行は、この点を示しています。 M を固定して D を変更すると、D が大きくなるにつれて値の範囲は小さくなります (ただし、精度は高くなります)。表 2-7 の最後の 3 行は、この点を示しています。

特定の DECIMAL 型の値の範囲は、MySQL データ型のバージョンによって異なります。 MySQL3.23 より前のバージョンでは、DECIMAL(M, D) 列の各値は M バイトを占め、符号 (必要な場合) と小数点は M バイトに含まれます。したがって、DECIMAL(5, 2) 型の列には、考えられるすべての 5 文字の値が含まれるため、値の範囲は -9.99 から 9 9 9 になります。

MySQL3.23 と同様に、DECIMAL 値は ANSI 仕様に従って処理されます。ANSI 仕様では、DECIMAL(M, D) が M 桁の小数点以下 D 桁で任意の値を表現できる必要があると規定されています。

たとえば、DECIMAL(5, 2) は、-999.99 から 999.99 までのすべての値を表現できなければなりません。また、符号と小数点を格納する必要があるため、MySQL3.23 以降、DECIMAL 値は M + 2 バイトを占有します。 DECIMAL(5, 2) の場合、「最長」値 (-9 9 9 . 9 9) には 7 バイトが必要です。

正の値の範囲の一端ではプラス記号は必要ないため、MySQL データ型はそれを使用して、ANSI 仕様で必要な値の範囲を超えて値の範囲を拡張します。たとえば、DECIMAL(5, 2) の最大値は 9 9 9 9 です。これは、使用可能なバイトが 7 バイトであるためです。

つまり、MySQL3.23 以降のバージョンでは、DECIMAL(M, D) の値の範囲は、以前のバージョンの DECIMAL(M + 2, D) の値の範囲と同じになります。 MySQL データ型のすべてのバージョンで、DECIMAL カラムの D が 0 の場合、小数点は格納されません。この結果、小数点の格納に使用されたバイトを他の数値の格納に使用できるようになるため、列の値の範囲が拡張されます。

関連する推奨事項:

10 進数型に関する推奨記事 10 選

MySQL データ型 - 10 進数の詳細な説明

mysql で通貨値を識別するには 10 進数を使用する必要があることに注意してください

以上がMySQL データ型における DECIMAL の使用例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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