sql >> データベース >  >> RDS >> Mysql

MySQLは浮動小数点加算の数学計算をどのように行いますか?

    SQL 92が古い標準であることは知っていますが、新しいSQL標準バージョンではこれが変更されていないことは間違いありません。

    SQL92は

    を定義します

    質問は次のとおりです:0.1 および0.2 クエリ内SELECT 0.1 + 0.2 おおよそですか、それとも正確ですか?
    答えは、データベースもわからないということです。
    したがって、データベースはMySQLおよびMariaDBエンジン用に定義された実装を実行し、このシームはDECIMAL(1,1)として処理されます。 データ型

    Nickの回答が正しい値またはテーブル定義で期待される値を返すのはなぜですか

    SQL92は

    も定義します

    テーブルでデータ型を定義することによってニックが行ったこと。

    今日MySQLのマニュアルで何かを見つけたので、この回答を編集しました。

    クエリ

    SELECT (0.1 + 0.2) = 0.3 
    

    結果を1に MySQLでは、MySQLは正確な数値計算を使用し、精密数学 したがって、MySQLは0.10.2 および0.3 ここでは正確なデータ型であり、この編集の前に期待していたように、正確に計算する必要があります。

    クエリの意味

    SELECT (0.1 + 0.2) = 0.3 
    

    のようにボンネットの下で実行されます
    SELECT CAST((0.1 + 0.2) AS DECIMAL(1, 1)) = CAST((0.3) AS DECIMAL(1, 1));
    


    1. Oracle DataAccess関連:呼び出されたメンバーは、動的アセンブリではサポートされていません。

    2. Oracle11gr2にProceduralOptionをインストールする方法

    3. INFORMATION_SCHEMAとsysobjects

    4. SQLで部分文字列検索を実装するための最良の方法は何ですか?