需要用字符型,如varchar,varchar2,char等。
原因:
因为百分数中的百分号属于字符,无法直接插入数字类型中。
演示:
1、创建测试表:
create table test(id1 number(10,2),
id2 varchar2(10))
2、插入数据:
insert into test values (10%,2)执行时会报错,因为number类型的字段中无法保存百分数。
insert into test values (1,'20%')按上边语句则可以成功,已经将20%转为字符保存。
用普通的 decimal 数据类型来存储。显示的时候, 加一个 ‘%’ 来显示就可以了。
下面是例子:
1>create table #t(
2> t decimal(5,2)
3>)
4>go
1>insert into #t values (100)
2>insert into #t values (99.99)
3>go
1>select Str(t, 5, 2) + '%' from #t
2>go
------
100.0%
99.99%
(2 行受影响)
FLOATFLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308
DECIMAL
DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。
两个都可以,一般使用Float类型的小数来表示百分比,但是根据你的需要使用其他表示方法也行,使用字符型,把比例用字符串的形式存入也是可以的,比如说使用varchar,存入'1/7',使用INT,根据精度存入数字,如1234,取出后除以100,得12.34等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)