無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 22 精密計算
« 21.27 SHOW ステートメントへの拡張

22.1 数値のタイプ »
Section Navigation      [Toggle]
  • はじめに
  • 1 一般情報
  • 2 MySQL のインストールと更新
  • 3 MySQL プログラムの使用
  • 4 データベース管理
  • 5 レプリケーション
  • 6 最適化
  • 7 クライアントプログラムとユーティリティ プログラム
  • 8 言語構造
  • 9 キャラクタセットサポート
  • 10 データタイプ
  • 11 関数と演算子
  • 12 SQL ステートメント構文
  • 13 ストレージエンジンとテーブルタイプ
  • 14 MySQL Cluster
  • 15 パーティショニング
  • 16 Spatial Extensions
  • 17 ストアドプロシージャとファンクション
  • 18 トリガ
  • 19 Event Scheduler
  • 20 ビュー
  • 21 INFORMATION_SCHEMA データベース
  • 22 精密計算
    • 22.1 数値のタイプ
    • 22.2 DECIMAL データ タイプの変更
    • 22.3 式の取り扱い
    • 22.4 丸め挙動
    • 22.5 精密計算の例
  • 23 APIとライブラリー
  • 24 MySQL コネクタ
  • 25 Extending MySQL
  • A Frequently Asked Questions About MySQL 5.1
  • B Errors, Error Codes, and Common Problems
  • C MySQL Change History
  • D 制限と規制
  • E Credits
  • 目次

第22章 精密計算

目次

22.1. 数値のタイプ
22.2. DECIMAL データ タイプの変更
22.3. 式の取り扱い
22.4. 丸め挙動
22.5. 精密計算の例

MySQL 5.1 は精密計算に対するサポートを提供します。非常に正確な結果をもたらす数値処理と無効な値に対する高度なコントロール。精密計算はこれら2つの特徴に基づいています:

  • どの程度厳格に無効なデータを容認するか、拒否しようとしているかを管理する SQL モード。

  • 固定小数点演算に対する MySQL ライブラリ。

これらの特徴は数値演算に対していくつかの帰結的意味を持っています:

  • 精密計算:正確な値の数に対して、計算は浮動小数点エラーを導入しません。その代わりに、精密計算が使用されています。例えば、.0001のような数は近似値としてより、むしろ正確な値として取り扱われ、10,000回それを合計する事は、単に 1 に 「近い」 値ではなく、正確に1とする結果を生みます。

  • 明確な四捨五入挙動:正確な価値を持つ数に対する ROUND() の結果は、基礎をなす C ライブラリを作動させる方法のような環境要因ではなく、その引数に依存します。

  • プラットフォームの独立:正確な数値に関する演算は Windows や Unix のような異なったプラットホームを使ってもすべて同じです。

  • 無効な値の取り扱いコントロール:ゼロによるオーバーフローと分割は探知できますが、エラーとして扱う事もできます。例えば、カラムに対して大きすぎる値の場合、切り捨てて、データ タイプの範囲内に丸めるのではなく、エラーとして扱う事ができます。同様に、ゼロによる分割を NULL の結果を生む演算としてよりむしろエラーとして扱う事ができます。採用すべき方法の選択は sql_mode システム変数の設定によって決まります。

これらの特徴による重要な結果は、MySQL 5.1 はスタンダード SQL に高度に準拠した物を提供するという事です。

以下の部分には、(古いアプリケーションに不適合しない可能性を含めて)精密計算がどのように機能するのかに関するいくつかの局面が含まれています。最後に、MySQL 5.1 がいかに正確に演算を処理するかを明らかにする若干の例を掲載しましたのでご覧ください。SQL モードをコントロールする為の sql_mode システム変数の使用に関する情報については、項4.2.6. 「SQL モード」 をご参照ください。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.