2011-01-10 6 views

答えて

12

PostgreSQL datatypesを参照してください。任意の精度またはスケール無し

...は、任意の精度とスケールの数値が正確に実装限界まで、格納可能なカラムを作成します。

「精度の実装上の制限」は何であるか完全にはわかりませんが、試したことがない本当に大きな数字。制限に達すると、textにフォールバックすることができます。しかし、それ以前には重大な問題があると思われます;-) lessを格納する場合は、精度および/または位取りをnumericに指定してください。

編集 SJRが指摘したように、制限が(同じリンクから)精密1000桁である:

型数値は、精度の最大1000桁の数字を格納することができる[IN currentlの実装]と正確に計算を実行します。 より精度が必要な場合はそれが特に

...金額と正確さが要求される他の量を格納するために推奨されます - 手元にはるかに大きな問題を抱えているにもかかわらず - そして、数値列ができなくなります適切な(それ自体で)。しかし、これは実際には非常に多くの極端な "あれば"とおそらく制限的な役割を果たすことはありません。

+0

あなたは大丈夫です、私の悪い:) – sjr

+1

私はあなたの投稿を最新版の文書に編集しました。 8.2はちょっと古いです;) – DrColossos

+0

@DrColossos非常に高く評価されています。 –

4

一般的なSQLデータ型にJavaマッピングを使用するだけです。この場合は、NUMERICまたはDECIMALを使用できます。

+0

これは特別なサポートのためにPostgreSQLで動作します。しかし、SQL自体は任意の精度の数値型を定義しません。 SQL Serverの最大精度は38桁です。 (うまくいけば、BigDecimalの値はその範囲にあることが保証されます:-) –

+0

質問はPostgreSQLについてであり、SQL Serverに関するものではありません。 NUMERICとDECIMALはPostgreSQLには何の制限もありません:http://www.postgresql.org/docs/current/static/datatype-numeric.html –

+0

PostgreSQLでさえ、文書によると1000桁の精度があります。私は決してこの大規模の近くの数字を使用する必要はなかったので、私はそうでないとコメントすることはできません。重要な点は、JavaのBigDecimalは*より大きい*大きな制限があることです。重要なのは、数値のスペースが*より小さいことです。実際の理由がわからなくても、そのことは言及しないでください。 –

関連する問題