1. ホーム
  2. mysql

[解決済み] 統計データの保存には、DECIMAL、FLOAT、DOUBLEのどれが必要ですか?

2023-07-16 05:55:07

質問

私は遊びで、でも真剣に取り組みたいと思い、様々なテストをホストするサイトを作っています。これらのテストで、私は統計的なデータを収集することを望んでいます。

データの一部には、テストが時間通りに完了した割合が含まれます。私はテストのパーセンテージを簡単に計算することができますが、私は、完了時のテストに関するさまざまな異なる値を格納するように、真のデータが返されることを望みます。

私の質問は、もし私が真の統計的データを必要とするならば、MYSQLにFLOAT、DOUBLEまたはDECIMALとしてそれらを格納すべきなのか、ということです。

私は、次のようなMYSQLの関数を利用したいと思います。 AVG()LOG10() と同様に TRUNCATE() . MYSQL が挿入した値に基づいて真のデータを返すには、データベース・カラムの選択肢として何を使用すればよいのでしょうか。

いくつかの数値は、10、10.89、99.09、または単に 0 のような浮動小数点数であったり、そうでなかったりするので、私は質問します。 しかし、私は、真で有効な統計データを返したいのです。

このために浮動小数点数の数学に頼ることができますか。

EDIT

私はこれが一般的な質問であることを知っていて、私は広範囲に申し訳ありませんが、私のような非数学者のために、また私はMYSQLの専門家ではありません、私はこの分野の専門家の意見が欲しいです。

私は自分の研究を行いましたが、まだこの問題についての判断が鈍っているように感じます。私の質問がトピックから外れていたり、このサイトに適していない場合は、再度謝罪します。

どのように解決するのですか?

これは リンク は、あなたが探しているものを説明するのに良い仕事です。 以下はその内容です。

これら3つの型はすべて、次のパラメータ(size, d)で指定することができます。ここで、sizeは文字列の合計サイズ、dは精度を表します。例:1234.567のような数値を格納する場合、データ型をDOUBLE(7, 3)に設定します。7は全体の桁数、3は小数点以下の桁数です。

FLOATとDOUBLE、どちらも浮動小数点数を表します。FLOATは単精度で、DOUBLEは倍精度の数値です。0から23の精度の場合、4バイトの単精度のFLOATカラムになります。24から53の精度の場合、8バイトの倍精度DOUBLEカラムになります。FLOATは小数点以下約7桁、DOUBLEは小数点以下14桁までの精度です。

Decimalの宣言と機能はDoubleと似ています。しかし、浮動小数点値と10進数(数値)値には1つ大きな違いがあります。DECIMALデータ型は、正確な数値を保存するために使用され、精度は求められませんが、正確で正確な値が必要です。10進データ型は最大65桁まで保存でき、小数点以下は30桁まで保存できます。

ですから、最も正確で精密な値のためには、Decimalが最良の選択肢でしょう。