oracle数据库中小数精度问题

系统用的是oracle数据库,储存的数据多为数字,最大的情况下整数位大概8到10位,小数位4位,我本来是想用类似number(14,4)类型的,但是用这个数据类型的话,输入到999999.9999它就会自动四舍五入了,不能够保证数据的精度。float我也用过,但是数位太多时它也会自动四舍五入,我不要四舍五入啊,要保留原来的数据。我应该用什么类型好?难道要用字符型?新人求解。
因为这些数据以后会涉及很多的计算,计算结果也要定时插入另一个表,所以似乎用字符型不怎么靠谱,因为计算时要用to_number来转化,转化时也会四舍五入。真的没有办法了吗?oracle怎么比mysql还麻烦啊在数据类型方面。各位大虾,救命啊!

number(14,4)是精确的存储方式。

存储 999999.9999 肯定不会会出现 四舍五入 的情况

应该是你自己的处理有问题吧

我这样试过了,肯定没有问题的:

create table t_test1(a number(14,4));
insert into t_test1 values(999999.9999);
select * from t_test1;
drop table t_test1;追问

求解答,是oracle某些不知名的设置问题?我是新手,请指教。

追答

这个应该是设置的问题,你用其他开发工具试试。

 

比如:toad、plsqldev、或者Oracle Sql Developer

追问

我去,真的是工具的问题。。。。。。对了高手,再请教一下,上头说Number类型占用字节太大了,我用float行不?像我这种情况的。

追答

1. 现在的存储,多占用这么点空间,无所谓了吧

2. float是浮点数,肯定不能精确表示数字。

温馨提示:答案为网友推荐,仅供参考
相似回答