Hassasiyet ve ölçek arasındaki fark nedir?


141

Oracle'da hassasiyet ve ölçek arasındaki fark nedir? Öğreticilerde ölçeği boş bırakırlar ve birincil anahtar oluştururken hassasiyeti 6 olarak ayarlarlar.

Hassasiyet ve ölçek ne anlama geliyor?

Yanıtlar:


203

Hassasiyet 4, ölçek 2: 99.99

Hassasiyet 10, ölçek 0: 9999999999

Hassasiyet 8, ölçek 3: 99999.999

Hassasiyet 5, ölçek -3: 99999000


15
negatif ölçeklerin davranışlarını açıklayabilir misiniz?
Geek

2
ondalık
sayıdan

3
hassasiyetin her zaman ölçek kısmını içerdiğini unutmayın. örneğin: Hassasiyet 4, ölçek 2 - 99.9999'dan büyük sayılarda başarısız olur. dene: dual'den cast (99,99999 olarak NUMBER (4,2)) seçin; //TAMAM; dual'den cast (100,9 olarak NUMBER (4,2)) seçin; //BAŞARISIZ;
Jama Djafarov

@JamaDjafarov 99.99999, aşağıda görüldüğü gibi başarısız olur: `` 21:53:54 CB900 @ XYZ> ikili seçimlerin dökümünü (99.99999, NUMBER (4,2)) seçin; satır 1'deki ikili * HATA'dan döküm (99.99999 NUMBER (4,2)) seçin: ORA-01438: bu sütun için izin verilen hassasiyetten daha büyük değer 21:52:32 CB900 @ ASCEND1> v $ örneğinden sürüm seçin; SÜRÜM ------------------------------------------------- - 12.1.0.2.0 `
Phalgun

@ DALPPhalgun oyuncu seçimi (99.9999, NUMBER (4,2)); kötü bir örnektir, çünkü kesme sayı 99'dan 100'e yuvarlanacaktır, bu sayı NUMBER (4,2) için çok büyük olacaktır. DUAL'den cast (88.8888 sayısını NUMBER (4,2)) olarak seçmeyi deneyin; bunun yerine cevabı görmek 88.89.
superbeck

58

Hassasiyet, önemli basamakların sayısıdır. Oracle, 1'den 38'e kadar hassasiyetle sayıların taşınabilirliğini garanti eder.

Ölçek ondalık noktanın sağındaki (pozitif) veya solundaki (negatif) basamak sayısıdır. Ölçek -84 ila 127 arasında değişebilir.

Sizin durumunuzda, hassas 6'ya sahip kimlik, 7 veya daha fazla basamaklı bir sayıyı kabul etmeyeceği anlamına gelir.

Referans:

http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832

Bu sayfada ayrıca hassasiyeti ve ölçeği anlamanıza yardımcı olacak bazı örnekler de vardır.


1
Bu son bumber 1000000 olacağı anlamına mı geliyor?
user700792

9
+1: Bence bunu anlamanın anahtarı iç sayı biçimini anlamak - mantis ve üs. Hassasiyet, mantisin olası uzunluğuna bir sınır koyar ve ölçek, üssün olası minimum değerine bir sınır koyar.
David Aldridge

@DavidAldridge Seni yankıyorum. Sanırım bunu mantis ve üsle ilgili bir cevap olarak değerlendirmeyi düşünmelisin. Bir sayı aslında değişken uzunluk biçiminde saklanır.
Lalit Kumar B

55

Hassasiyet toplam basamak sayısıdır, 1 ile 38 arasında olabilir.
Ölçek ondalık noktadan sonraki basamak sayısıdır, yuvarlama için negatif olarak da ayarlanabilir.

Örnek:
NUMBER (7,5): 12.12345
NUMBER (5,0): 12345

ORACLE web sitesi hakkında daha fazla bilgi:
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832


Ölçek, ondalık virgülünden hemen sonra değil, ondalık virgülün sağındaki (pozitif) veya solundaki (negatif) basamak sayısıdır.
Lalit Kumar B

KoljaTM örneğine bakın. Kesinlik, bir değere sahip olabilecek kaç önemli basamaktır (yani, yer tutucular olarak yalnızca "0" değil). Ölçek, ondalık noktaya göre bunların nasıl düştüğünü gösterir. Ölçek negatif olabilir. NUMBER (1, -4): yalnızca 10 değere izin verir: 00000, 10000, 20000 ... 90000
gordon

1
Hassaslık SADECE toplam basamak sayısı DEĞİLDİR. David Aldridge'in manojlds hakkındaki yorumunda açıkladığı gibi, mantis - kaç önemli basamak önemsediğiniz. Üs olarak kabul edilen ölçek düşüncesi ezoterik de olsa daha doğru bir açıklamadır. Herhangi bir negatif ölçeğin ondalık noktasından sonra rakamları olmayacak ve ondalık noktanın solunda yer tutucuları olarak 0'lara sahip olacaktır. NUMBER (1, -4) 5 haneye sahip olacak, ancak yalnızca 10.000'inci basamakta birincisi değer verdiğiniz bir değere sahip olacak.
Gordon

34

Belki daha açık:

Hassasiyet, ölçek dahil toplam basamak sayısıdır

NUMARASI (Hassas, Ölçek)

Hassasiyet 8, ölçek 3: 87654.321

Hassasiyet 5, ölçek 3: 54.321

Hassasiyet 5, ölçek 1: 5432.1

Hassasiyet 5, ölçek 0: 54321

Hassasiyet 5, ölçek -1: 54320

Hassasiyet 5, ölçek -3: 54000


19

Ölçek ondalık noktadan sonraki basamak sayısıdır (veya yerel ayarınıza bağlı olarak iki nokta üst üste işareti)

Hassasiyet, önemli basamakların toplam sayısıdır

VS hassasiyeti


1

duyarlık: Yarıçap noktasından önceki veya sonraki toplam basamak sayısıdır. EX: 123.456 burada hassasiyet 6'dır.

Ölçek: Sayı tabanı noktasından sonraki toplam basamak sayısı. EX: 123.456 burada Ölçek 3


-5

Değer 9999.988 ve Hassasiyet 4, ölçek 2 ise 9999 (hassasiyeti temsil eder) .99 (ölçek 2'dir, böylece .988, .99'a yuvarlanır)

Değer 9999.9887 ve hassasiyet 4 ise, ölçek 2 ise 9999.99 demektir


7
Hayır, hassasiyet, depolanacak önemli basamak sayısıdır. Her iki durumda da depolanan hassasiyet 6 ve ölçek 2'dir.
David Aldridge
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.