Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 精度和比例有什么区别?_Oracle_Types - Fatal编程技术网

Oracle 精度和比例有什么区别?

Oracle 精度和比例有什么区别?,oracle,types,Oracle,Types,Oracle中的精度和规模有什么区别?在教程中,在创建主键时,它们通常将“比例”留空,并将精度设置为6 精度和刻度代表什么?精度是有效位数。Oracle保证数字的可移植性,精度在1到38之间 小数位数是小数点右边(正)或左边(负)的位数 指向刻度的范围从-84到127 在您的情况下,精度为6的ID表示它不接受具有7个或更多有效数字的数字 参考: 该页面还提供了一些示例,可以让您了解精度和比例。精度4,比例2:99.99 精度10,刻度0:9999999 精度8,刻度3:99999.999 精度

Oracle中的精度和规模有什么区别?在教程中,在创建主键时,它们通常将“比例”留空,并将精度设置为6


精度和刻度代表什么?

精度是有效位数。Oracle保证数字的可移植性,精度在1到38之间


小数位数是小数点右边(正)或左边(负)的位数 指向刻度的范围从-84到127

在您的情况下,精度为6的ID表示它不接受具有7个或更多有效数字的数字

参考:


该页面还提供了一些示例,可以让您了解精度和比例。

精度4,比例2:99.99

精度10,刻度0:9999999

精度8,刻度3:99999.999


精度5,刻度-3:9999000

如果值为9999.988,精度4,刻度2,则表示9999(表示精度).99(刻度为2,因此.988四舍五入为.99)


如果值为9999.9887,精度为4,刻度为2,则表示9999.99

精度是总位数,可以介于1和38之间。
小数位数是小数点后的位数,也可以设置为负数进行四舍五入。

示例:
数字(7,5):12.12345
数字(5,0):12345

有关ORACLE网站的更多详细信息:
也许更清楚一些:

请注意,精度是包括刻度在内的总位数

数字(精度、刻度)

精度8,刻度3:87654.321

精度5,刻度3:54.321

精度5,刻度1:5432.1

精度5,刻度0:54321

精度5,刻度-1:54320

精度5,刻度-3:54000


精度:它是小数点前后的总位数。 EX:123.456 这里的精度是6

小数位数:小数点后的总位数。 EX:123.456
这里的Scaleis 3

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

精度是有效位数的总数


这意味着最后一次失败将是1000000?+1:我认为理解这一点的关键是理解内部数字格式——尾数和指数。精度限制尾数的可能长度,比例限制指数的可能最小值。@davidardridge我附和你。我认为你应该考虑把它作为尾数和指数的答案。数字实际上是以可变长度格式存储的。不,精度是要存储的有效位数。在这两种情况下,存储的精度均为6,刻度均为2。请解释负刻度的行为,好吗?看起来像是舍入/忽略了小数点后的许多整数值请记住,精度始终包括刻度部分。e、 g:精度4,刻度2-任何大于99.9999的数字都会失败。。;尝试:从dual中选择cast(99.99999作为数字(4,2))//好啊从dual中选择cast(100.9作为编号(4,2))//失败@JamaDjafarov 99.99999失败,如下所示:`21:53:54CB900@XYZ>从dual中选择cast(99.99999作为编号(4,2));从第1行的dual*ERROR中选择cast(99.99999作为数字(4,2)):ORA-01438:大于该列允许的指定精度的值21:52:32CB900@ASCEND1>从v$instance中选择版本;版本-------------------------------------------12.1.0.2.0`@Phalgun选择从DUAL开始施放(99.9999作为数字(4,2));这是一个糟糕的例子,因为截断会将数字从99舍入到100,这对于数字(4,2)来说太大了。尝试从DUAL中选择cast(88.8888作为数字(4,2));相反,要查看响应是88.89。刻度是小数点右侧(正)或左侧(负)的位数,而不仅仅是小数点之后的位数。请看koljaTM的示例。精度是指有多少个有效数字,可能有一个值(即,不只是作为占位符的“0”)。比例表示它们相对于小数点的下降方式。比例可以是负数,表示您不关心0以上的精度。数字(1,-4):仅允许10个值:00000、10000、20000…90000精度不仅仅是总位数。正如David Aldridge在他对manojlds的评论中所解释的,这是尾数——你关心多少个有效数字。被认为是指数的尺度是一种更为精确的解释,尽管有些深奥。任何负刻度在小数点后都不会有数字,小数点左侧会有很多0作为占位符。数字(1,-4)将有5位数字,但只有第一位数字(位于10000s处)会有您关心的值。