У чому різниця між точністю і масштабом?


141

Яка різниця між точністю і масштабом в Oracle? У підручниках вони зазвичай залишають шкала порожньою і встановлюють точність до 6 при створенні первинного ключа.

Що означає точність та масштабність?

Відповіді:


203

Точність 4, шкала 2: 99,99

Точність 10, шкала 0: 9999999999

Точність 8, шкала 3: 99999.999

Точність 5, шкала -3: 99999000


15
чи можете ви пояснити поведінку негативних масштабів?
Geek

2
виглядає як
округлення

3
майте на увазі, що точність завжди включає порцію шкали. напр .: Точність 4, шкала 2 - не вийде будь-яке число> 99.9999 ..; спробуйте: виберіть кастинг (99,99999 як НОМЕР (4,2)) з подвійного; //ГАРАЗД; виберіть кастинг (100,9 як НОМЕР (4,2)) з подвійного; // ПОСТУП;
Джама Джафаров

@JamaDjafarov 99.99999 виходить з ладу, як видно нижче: `21:53:54 CB900 @ XYZ> виберіть кастинг (99,99999 як НОМЕР (4,2)) з подвійного; вибрати рядок (99,99999 як НОМЕР (4,2)) з подвійного * ПОМИЛКА в рядку 1: ORA-01438: значення, що перевищує задану точність, дозволену для цього стовпця 21:52:32 CB900 @ ASCEND1> вибрати версію з екземпляра v $; ВЕРСІЯ ------------------------------------------------- - 12.1.0.2.0 `
Phalgun

@Phalgun select cast (99,9999 як NUMBER (4,2)) від DUAL; є поганим прикладом, оскільки усічення округлятиме число від 99 до 100, що є занадто великим для НОМЕРА (4,2). Спробуйте вибрати роль (88.8888 як НОМЕР (4,2)) з DUAL; натомість побачити відповідь - 88,89.
superbeck

58

Точність - це кількість значущих цифр. Oracle гарантує портативність номерів з точністю від 1 до 38.

Масштаб - це кількість цифр праворуч (додатне) або ліворуч (мінус) від десяткової коми. Шкала може варіюватися від -84 до 127.

У вашому випадку ідентифікатор з точністю 6 означає, що він не прийме число з 7 або більше значущими цифрами.

Довідка:

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

На цій сторінці також є кілька прикладів, які дозволять зрозуміти точність та масштабність.


1
це означає, що останній бумбер буде 1000000?
user700792

9
+1: Я думаю, що ключовим для розуміння цього є розуміння внутрішнього формату чисел - мантіси та експонента. Точність встановлює межу можливої ​​довжини мантіси, а шкала встановлює межу можливого мінімуму показника.
Девід Олдрідж

@DavidAldridge Я повторюю тебе. Я думаю, ви повинні розглянути повідомлення про це як відповідь щодо мантіси та показника. Число насправді зберігається у форматі змінної довжини.
Лаліт Кумар Б

55

Точність - це загальна кількість цифр, може бути від 1 до 38.
Масштаб - це кількість цифр після десяткових знаків, також може бути встановлена ​​як негативна для округлення.

Приклад:
НОМЕР (7,5): 12.12345
НОМЕР (5,0): 12345

Детальніше на веб-сайті ORACLE:
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832


І масштаб - це кількість цифр праворуч (додатне) або ліворуч (від’ємник) від десяткової коми, а не відразу після десяткової коми.
Лаліт Кумар Б

Подивіться на приклад koljaTM. Точність - скільки значущих цифр, які можуть мати значення (тобто, не просто "0" як місць, що займають місця). Шкала вказує, як вони падають відносно десяткової крапки. Шкала може бути негативною, що вказує на точну точність ЗА 0, про що НЕ турбуєшся. ЧИСЛО (1, -4): дозволяє тільки 10 значень: 00000, 10000, 20000 ... 90000
Гордону

1
Точність НЕ ПЕРЕСТАЄ загальну кількість цифр. Як пояснив Девід Олдрідж у коментарі до manojlds, це мантіса - скільки важливих цифр вам цікаво. Масштабна думка як показник є більш точним, хоч і езотеричним, поясненням. Будь-яка негативна шкала не матиме цифр після десяткової крапки і матиме стільки 0, як місць місця ліворуч від десяткової коми. НОМЕР (1, -4) матиме 5 цифр, але лише перша, на місці 10 000, матиме значення, яке вам важливо.
Гордон

34

Можливо, більш зрозуміло:

Зауважте, що точність - це загальна кількість цифр, включена шкала

НОМЕР (точність, масштаб)

Точність 8, шкала 3: 87654.321

Точність 5, шкала 3: 54.321

Точність 5, шкала 1: 5432.1

Точність 5, шкала 0: 54321

Точність 5, шкала -1: 54320

Точність 5, шкала -3: 54000


19

Масштаб - це число цифр після десяткової крапки (або двокрапки залежно від вашої мови)

Точність - загальна кількість значущих цифр

точність шкали VS


1

точність: загальна кількість цифр до або після точки радіації. Приклад: 123.456 тут точність 6.

Масштаб: загальна кількість цифр після точки радіації. EX: 123.456 тут Scaleis 3


-5

Якщо значення дорівнює 9999,988, а Precision 4 - шкала 2, то це означає 9999 (це репрезентує точність) .99 (шкала дорівнює 2, тому 988 округляється до .99)

Якщо значення - 9999,9887, а точність - 4, шкала - 2, то це означає 9999,99


7
Ні, точність - це кількість значущих цифр для зберігання. В обох випадках ваші точність зберігається в 6 і масштаб 2.
Девід Олдрідж
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.