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

MySQLラウンドフロートが予想よりもはるかに多いのはなぜですか?

    クエリを実行するとき:

    SELECT * FROM some_table WHERE id = 123
    

    浮動小数点数のフォーマットは、ユーザーインターフェイスに依存しています。使用しているインターフェースは、2文字以上ではなく2文字を使用しています。結局のところ、表示する「正しい」番号に関する情報はありません。

    数値を文字列または小数としてフォーマットすることにより、正しい数値を表示するようにインターフェイスを説得できます。例:

    select format(some_float_field, 3)
    

    これを小数点以下3桁の文字列に変換します。注意:不要なコンマも追加されます。これも機能するはずです:

    select cast(some_float_field as decimal(8, 3))
    

    次のような操作を行うことで、データが正しいことを簡単に検証できることに注意してください。

    select *
    from some_table
    where some_float_field between 1919.987 - 0.0001 and 1919.987 + 0.0001;
    

    =は使用しないことに注意してください 浮動小数点値についてですが、あなたはすでにそれを理解しています。



    1. SQL Serverセッションで自動コミットをどのように設定しますか?

    2. カスタムユーザー登録/ログインスクリプトの作成についてサポートが必要

    3. LIKEと〜の代わりに、代替との正規表現の一致を行うときにSIMILARTOのみが機能するのはなぜですか

    4. AndroidStudioが明示的なアクティビティクラスを見つけることができません