[英]What is the difference between precision and scale?
Oracle的精度和小数位数有什么区别? 在教程中,他们通常在创建主键时将比例留空并将精度设置为 6。
精度和规模代表什么?
精度 4,刻度 2:99.99
精度 10,比例 0:9999999999
精度 8,刻度 3:99999.999
精度 5,刻度 -3:99999000
精度是有效数字的位数。 Oracle 以 1 到 38 的精度保证数字的可移植性。
小数位数是小数点右侧(正)或左侧(负)的位数。 范围可以从 -84 到 127。
在您的情况下,精度为 6 的 ID 意味着它不会接受具有 7 个或更多有效数字的数字。
参考:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832
该页面还有一些示例,可以让您了解精度和比例。
精度是总位数,可以在 1 到 38 之间。
规模是小数点后的数字位数,也可以被设置为负舍入。
例子:
号码(7,5):12.12345
号码(5,0):12345
ORACLE 网站上的更多详细信息:
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832
也许更清楚:
请注意,精度是总位数,包括小数位数
NUMBER(精度,刻度)
精度 8,刻度 3:87654.321
精度 5,刻度 3:54.321
精度 5,刻度 1:5432.1
精度 5,刻度 0:54321
精度 5,比例 -1:54320
精度 5,比例 -3:54000
精度:小数点前后的总位数。 例如:123.456 这里的精度是 6。
小数位数:小数点后的总位数。 EX: 123.456 这里 Scaleis 3
规模>0
规模<0
如果您指定负比例,Oracle 数据库会将实际数据四舍五入到小数点左侧的指定位数。 参考Oracle
如果值为 9999.988 且精度为 4,比例为 2,则表示 9999(表示精度)。99(比例为 2,因此 .988 舍入为 0.99)
如果值为 9999.9887,精度为 4,小数位数为 2,则表示 9999.99
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.