MySQL データ型における DECIMAL の使用法の詳細な説明 MySQL のデータ型には、INT、FLOAT、DOUBLE、CHAR、DECIMAL などがあり、それぞれに独自の機能があります。ここでは主に、MySQL のデータ型のうち DECIMAL 型の機能と使用方法を紹介します。 通常、浮動小数点列に割り当てられた値は、列に指定された小数点数に丸められます。 1. 2 3 4 5 6 を FLOAT(8, 1) 列に格納すると、結果は 1. 2 になります。同じ値が FLOAT(8, 4) 列に格納されている場合、結果は 1. 2 3 4 6 になります。 つまり、可能な限り最も正確な値を得るために、十分なビット数を持つ浮動小数点列を定義する必要があります。 1000 分の 1 の精度が必要な場合は、小数点以下 2 桁のみを持つ型を定義しないでください。 この浮動小数点値の処理は、FLOAT(4)とFLOAT(8)のパフォーマンスが変更されたMySQL 3.23で免除されました。これら 2 つの型は、現在、単精度 (4 バイト) 型と倍精度 (8 バイト) 型であり、値が指定されたとおりに格納されるという意味で真の浮動小数点型です (ハードウェアの制限のみに従います)。 DECIMAL 型は FLOAT や DECIMAL とは異なり、DECIMAL は実際には文字列として保存されます。 DECIMAL 値の最大可能範囲は DOUBLE と同じですが、その有効範囲は M と D の値によって決まります。 M が変更され、D が固定されている場合、M が増加するにつれてその値の範囲は増加します。表 2-7 の最初の 3 行がこれを示しています。 M が固定され、D が変更されると、D が増加するにつれてその値の範囲は狭くなります (ただし、精度は向上します)。表 2-7 の最後の 3 行がこれを示しています。 特定の DECIMAL 型の値の範囲は、MySQL データ型のバージョンによって異なります。 MySQL 3.23 より前のバージョンでは、DECIMAL(M, D) 列の各値は M バイトを占め、符号 (必要な場合) と小数点が M バイトに含まれます。したがって、DECIMAL(5, 2)型の列は、すべての可能な5文字の値をカバーしているため、-9.99から9 9 . 9 9の範囲の値を持つことができます。 MySQL 3.23 以降、DECIMAL 値は ANSI 仕様に従って処理されます。ANSI 仕様では、DECIMAL(M, D) は M 桁、D 小数点以下の任意の値を表現できる必要があると規定されています。 たとえば、DECIMAL(5, 2)は、-999.99から999.99までのすべての値を表現できる必要があります。また、符号と小数点も保存する必要があるため、MySQL 3.23 以降では DECIMAL 値は M + 2 バイトを占有します。 DECIMAL(5, 2)の場合、「最長」値(-999.99)には7バイトが必要です。 正の範囲の一方の端では正の符号は必要ないため、MySQL データ型ではこれを使用して、ANSI 仕様で要求される範囲を超えて値の範囲を拡張します。たとえば、DECIMAL(5, 2) の最大値は 9 9 9 9 です。9 9 は、使用可能なバイトが 7 バイトあるためです。 つまり、MySQL 3.23 以降では、DECIMAL(M, D) の範囲は、以前のバージョンの DECIMAL(M + 2, D) の範囲と同じになります。 MySQL データ型のすべてのバージョンにおいて、DECIMAL 列の D が 0 の場合、小数点は保存されません。その結果、以前は小数点を格納するために使用されていたバイトが他の数値を格納するために使用できるようになるため、列内の値の範囲が拡張されます。 ご質問がありましたら、メッセージを残すか、コミュニティに参加して話し合いましょう。お読みいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただき、ありがとうございます。 以下もご興味があるかもしれません:
|
<<: VMware Workstation のインストール Linux システム
>>: WeChatアプレットがログインインターフェースを実装
目次1. 遅いクエリ構成1-1. スロークエリを有効にする2. 遅いクエリSQLの分析を説明する3....
1. 結論構文: 制限オフセット、行結論: 同じ行条件では、オフセット値が大きいほど、limitステ...
インタビュアー: Vue のソースコードを読んだことはありますか?応募者:あります。インタビュアー:...
脆弱性の説明Apache Flink は、分散ストリームおよびバッチ データ処理用のオープン ソース...
データベースストアドプロシージャ`generate_serial_number_by_date` が...
Docker の導入規模が大きくなると、コンテナを監視する必要があります。一般的に、Docker に...
目次1. 実装2. 問題点3. より良い実装方法があるかどうか検討する要約する背景は日付のタイトルで...
今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................
通常は ul、li を介して選択のデフォルト スタイルを変更して、実現をシミュレートします。このよう...
1. CSS、jQuery、Canvasを使用してアニメーションを作成する1. キャンバス利点: ...
1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...
序文この記事では主に、シングルクォートやバックスラッシュを含む値を挿入するMySQLステートメントに...
ページ内のテーブルの幅を width="600px" に設定した後も、幅が固定さ...
便利なターミナル エミュレーターである Xshell は、開発者がホスト サーバーをリモート管理する...
この記事では、Taobao商品詳細のカルーセルを実現するためのvideojs+swiperの具体的な...