插入到数据库的数据不一致,求解释
create table tb_pinfo
(
pid number,
pname varchar2(200),
dprice number(19,2),
cprice number(19,2)
);
insert into tb_pinfo values(1,'lenovo g470',99999999999999999,0);
插入之后,查询发现插入后的数据,和插入时的数据明显不一致
大家都遇到这种鸟问题吗?如何解决
------解决方案--------------------create table tb_pinfo
(
pid number,
pname varchar2(200),
dprice number(20,2),cprice number(19,2)
);
这样就没有问题了
------解决方案--------------------------解决方案--------------------这是Oracle number类型
number类型的存储机制
number(p,s)
p:1~38
s:-84~127
p>0,对s分2种情况:
1. s>0
精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。
2. s<0
精确到小数点左边s位,并四舍五入。然后检验有效数位是否<=p+
------解决方案--------------------s
------解决方案--------------------------解决方案--------------------你用的是不是pl/sql ?
哈哈。这个是pl/sql 的bug。。它会自动帮你四舍五入的。
如果你插入1111111111.12 到表中,然后再查这个字段出来,显示的却是1111111111 小数点后值没啦。。
和你这个是同样的道理。。( 如果你想看到小数点后的值的话。你可以to_char() )
你换个客户端就可以了。我换的是 cse 工具。。