В чем разница между точностью и масштабом?

100

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

Что означают точность и масштаб?

Теги:
types

7 ответов

162

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

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

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

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

  • 9
    Можете ли вы объяснить поведение отрицательных шкал?
  • 2
    выглядит как округляет / игнорирует, что много целых значений слева от десятичного
Показать ещё 5 комментариев
57

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

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

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

Ссылка:

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

На этой странице также есть несколько примеров, которые помогут вам понять точность и масштаб.

  • 1
    это означает, что последний лесоматериал будет 1000000?
  • 7
    +1: я думаю, что ключом к пониманию этого является понимание внутреннего формата чисел - мантисса и показатель степени. Точность накладывает ограничение на возможную длину мантиссы, а шкала накладывает ограничение на возможный минимум показателя степени.
Показать ещё 1 комментарий
45

Точность - общее количество цифр. Масштаб - это число цифр после десятичной точки.

Пример:
НОМЕР (7,5): 12,12345
НОМЕР (5,0): 12345

  • 11
    Точность - это общее количество цифр, а не число слева от десятичной точки.
  • 0
    И Масштаб - это число цифр справа (положительно) или слева (отрицательно) от десятичной точки, а не только после десятичной точки.
27

Возможно, более ясно:

Обратите внимание, что точность - это общее количество цифр, включая шкалу

ЧИСЛО (точность, масштаб)

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

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

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

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

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

  • 0
    это очень хорошее объяснение. Если вы можете указать, что точность равна общему количеству цифр сверху, было бы проще
  • 1
    Изменение сделано. Благодарю.
1

Точность: это общее количество цифр до или после точки радиуса. Пример: 123.456, здесь точность равна 6.

Шкала: это общее количество цифр после точки радиуса. Пример: 123.456 здесь Scaleis 3

0

Масштаб - это число после десятичной запятой (или двоеточие в зависимости от вашей локали)

Точность - это общее количество значащих цифр

Изображение 7138

-6

Если значение 9999,988 и Precision 4, масштаб 2, то это означает 9999 (он представляет точность).99 (масштаб равен 2, поэтому .988 округляется до 0,99)

Если значение равно 9999,9887, а точность - 4, масштаб равен 2, то это означает 9999.99

  • 6
    Нет, точность - это количество значащих цифр для хранения. В обоих ваших случаях сохраненная точность равна 6, а масштаб равен 2.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню