为了账号安全,请及时绑定邮箱和手机立即绑定

请问R语言中numeric 和 integer 的区别?

请问R语言中numeric 和 integer 的区别?

qq_花开花谢_0 2019-07-01 10:07:08
R语言中numeric 和 integer 的区别
查看完整描述

7 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

number属于oracle内置数据类型 plsql也是兼容的
NUMBER ( precision, scale)
precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。
scale表示数字小数点右边的位数,scale默认设置为0. 如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。

integer是准属于plsql的数据类型 一般我们使用 pls_integer

查看完整回答
反对 回复 2019-07-13
?
MM们

TA贡献1886条经验 获得超2个赞

oracle 内部都是以number类型存放。number类型表示的长度默认是38,小数点为没有限制。
integer只是plsql内部使用变量的类型。

查看完整回答
反对 回复 2019-07-13
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

integer是number的子类型.
integer是整数,number是数.一般用number就行~

查看完整回答
反对 回复 2019-07-13
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

number类型就是包括了所有的数字类型。可以是integer也可以是numeric
Oracle数据类型之number
oracle的number类型是oracle的内置类型之一,是oracle的最基础数值数据类型。在9iR2及其以前的版本中只支持一种适合存储数值数据的固有数据类型,在10g以后,才出现了两种新的数值类型,即推出本地浮点数据类型(Native Floating-Point Data Types): BINARY_FLOAT(单精度32位)和BINARY_DOUBLE(双精度64位). 这些新数据类型都是基于IEEE二进制浮点运算标准,ANSI/IEEE Std 754-1985 [IEEE 754],使用这些类型时要加上文字f(BINARY_FLOAT)或者d(BINARY_DOUBLE),比如2.07f、3.000094d。

number数据类型

number类型的语法很简单:number(p,s):
p:精度位,precision,是总有效数据位数,取值范围是38,默认是38,可以用字符*表示38。
s:小数位,scale,是小数点右边的位数,取值范围是-84~127,默认值取决于p,如果没有指定p,那么s是最大范围,如果指定了p,那么s=0。
p:is the precision,or the total number of digits. Oracle guarantees the portability of numbers with precision ranging from 1 to 38.
s:is the scale, or the number of digits to the right of the decimal point. The scale can range from -84 to 127.

number类型的p和s,与其底层存储完全没有关系,根本不会影响数据在磁盘上如何存储,它只会影响允许哪些值以及数值如何舍入,你可以认为其是对数据的“编辑”。简单的说,精度位p表示数值最多能有多少个有效数字,而小数位s表示最多能有多少位小数。换句话说,p表示一共有多少位有效数字(即小数点左边最多有p-s位有效数字),s表示小数点右边有s位有效数字。如number(5,2)类型的数据,就表示小数点左边最多有3位有效数字,右边最多有2位有效数字,加起来就是最多有5位有效数字,超过这个范围的数字就不能正确的存储下来,注意这里说的是不能正确存储,但并不是不能存储。

最高整数位数=p-s
s正数,小数点右边指定位置开始四舍五入
s负数,小数点左边指定位置开始四舍五入
s是0或者未指定,四舍五入到最近整数
当p小于s时候,表示数字是绝对值小于1的数字,且从小数点右边开始的前s-p位必须是0,保留s位小数。

p>0,对s分2种情况:
1. s>0
精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。
2. s<0
精确到小数点左边s位,并四舍五入。然后检验有效数位是否<=p+|s|




查看完整回答
反对 回复 2019-07-13
?
大话西游666

TA贡献1817条经验 获得超14个赞

没什么影响,主要是支撑多种命名规则吧,归根还是number数据类型,numeric,int,integer最后都被Oracle转化成number

查看完整回答
反对 回复 2019-07-13
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

你先分清楚int和Integer的区别,就能分清int[]和Integer[]的区别了! 首先: int类型是结构Int32的别名,学C#应该知道结构是什么- - Integer是类, 结构呢他是值类型的,而类呢是引用类型的。

查看完整回答
反对 回复 2019-07-13
  • 7 回答
  • 0 关注
  • 6221 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信