2011-01-10 16 views

cevap

12

PostgreSQL datatypes bakınız - belki Numeric bir keyfi hassas tip (bu bir PostgreSQL olan) olarak hareket edebilir olan. Herhangi duyarlık veya ölçek olmadan

... herhangi duyarlık ve ölçek sayısal değerler hassas üzerindeki uygulama sınırına kadar, saklanabilir olduğu bir sütun oluşturur.

Gerçi "kesinlik üzerinde uygulama limiti" ne tamamen emin değilim. 'u gerçekten çok fazla sayıda denemediniz. Limite ulaşıldığında, text için bir geri dönüş mümkündür. Ancak, o zamandan önce başka önemli sorunlar olacağını sanıyorum ;-) Daha az depolamak istiyorsanız, numeric'a bir hassasiyet ve/veya bir ölçek belirtin.

SJR olarak düzenleme kısıtlama (aynı bağlantısından) hassas 1000 ondalık hane, işaret yer: [hassas 1000 basamağıyla numaralarını saklamak için

tipi sayısal currentl uygulamaları] ve tam olarak hesaplamaları gerçekleştirin. daha hassas gerekiyorsa Özellikle

... parasal tutarları ve doğruluk gereklidir diğer miktarlarını depolamak için tavsiye edilir - el altında çok daha büyük bir problem olmasına rağmen - o zaman sayısal bir sütun olmayacaktır uygun (kendi başına). Ama bu gerçekten çok daha fazla aşırı "ne varsa" ve büyük olasılıkla bir sınırlayıcı rol oynamaz.

+0

Haklısınız, benim kötülük :) – sjr

+1

Gönderinizi, belgelerin en yeni sürümüne düzenledim. 8.2 biraz modası geçmiş gibi görünüyor;) – DrColossos

+0

@DrColossos Çok beğeni topladı. –

4

Sadece ortak SQL veri türleri için Java eşlemelerini kullanın. Bu durumda bir NUMERIC veya DECIMAL kullanabilirsiniz.

+0

Bu, özel destek nedeniyle PostgreSQL'de çalışır. Bununla birlikte, SQL'in kendisi bir rastgele kesinlikli sayısal tip tanımlamaz. SQL Server'da maksimum hassasiyet 38 hanedir. (Umarım BigDecimal değeri bu aralıkta olmasına rağmen garanti edilir :-) –

+0

Soru, SQL Server hakkında değil PostgreSQL hakkındadır. NUMERİK ve DECIMAL'in PostgreSQL'de sınırları yoktur: http://www.postgresql.org/docs/current/static/datatype-numeric.html –

+0

Dokümantasyona göre PostgreSQL bile 1000 basamaklık bir üst sınıra sahiptir. Bu kadar büyük bir yerde sayı kullanmam gerektiğinden, başka türlü yorum yapamam. (Java'nın BigDecimal'inin * çok daha büyük bir sınırı vardır.) Buradaki nokta, sayısal alanın * daha küçük olması ve onu aşmak için pratik bir sebep bilmeme rağmen, gerçeğin birebir bırakılmaması gerektiğidir. –

İlgili konular