繁体   English   中英

精度和比例有什么区别?

[英]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

比例是小数点后的位数(或冒号,取决于您的语言环境)

精度是有效数字的总数

规模 VS 精度

精度:小数点前后的总位数。 例如: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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM