[非常に重要】パイソン-SQLAlchemyのMySQLデータベースは、フラクショナル型小数[要約]の注意状態を問い合わせます

浮動小数点の追加および削除は、より困難な問題があるデータベースの検索を変更するにはこちらを合計します

 

MySQLでの違いやダブルdecimal型フロートなど

プレゼンスフロート、MySQLのような二重の非標準のデータ型は、ある小数この標準のデータ型。

違いは、そのフロート、DBに格納されている二重および他の非標準タイプは、近似文字列として格納されている数値の小数点以下の桁数です。
フロートは、double型の浮動小数点(すなわちdecimal型)を格納することはできますが、データが整数である場合、あなたは整数としてそれに対処与えられたときに下振れフロートは、そこにあります。だから私たちは自然に金銭的価値にアクセスしたときに、私のデフォルト値は、問題が発生した:0.00実際のストレージが0である、私は12.00と同じ通貨にアクセスし、実際のストレージは12です。
このデータ型は、簡単に上記の問題を解決することができ、小数:幸いなことに、MySQLは2つのデータ型を提供し、小数点型はSQL92標準では許可されているのと同じタイプを、達成するためにMySQLのです。彼らは、値がそのようなお金に関連するデータとして正確な精度のための重要な要件、ある保持するために使用されます。

 

この理由:事業のお金と私たちが使用する関連した浮動小数点型小数小数のタイプを、時間への追加や削除、問題ありません!しかし、それ以外の場合は、理由はあなたが望む結果を得ることができない小数精度のクエリの問題につながる、クエリ時間の詳細は非常に重要であるが存在し、[条件が等しい場合、特定のクエリを]

たとえば、このテーブルの上に、私達のデータベースストレージの精度は9または小数点以下6桁であり、我々は、クエリ条件を使用する場合:浮動小数点数の結果は問題ありませんときが、あなたが使用している場合は、小数点をクエリの(0.05)、小数点データ型をすることができ考えられるクエリ結果を望んでいません

这里使用float类型的数字做查询条件
buy_order_model.price == 0.05

这里使用的是decimal(0.05)类型做查询条件的条件表达式
buy_order_model.price == 0.05000000000000000277555756156289135105907917022705078125

 

MySQLの概要:CRUDの小数点decimal型が、クエリを実行していない、小数点第一にしてくださいを形成条件でのクエリ式の前にfloat型に変換されます!

 

 

おすすめ

転載: blog.csdn.net/weixin_43343144/article/details/91418343