你这几个字段是NUMBER型的 由于值太大了 系统自动转换成科学计数法。这是正常的
我们提供的服务有:网站制作、网站建设、微信公众号开发、网站优化、网站认证、莱芜ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的莱芜网站制作公司
hr_s_pre 正解
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;
这个不是存储的问题,使输出显示的问题,你在输出格式化的时候要求必须显示两位小数就行了
先将数据转换为numeric类型,保留4位小数点,由零点几变为百分号前边的数字,再转换为varchar类型,然后再加'%'
如:
select ml as 毛利,sshje as 实收金额,
cast(cast(ml/sshje as numeric(4,4))*100 as varchar(20)) + '%' as 利润率
from chasalldayhz
oracle to_char(小数) 默认如此 oracle就是这样的
to_char用法本身也是需要格式化的,只不过我们平时对于普通字符都是直接to_char而已,对于时间,钱币等都是需要格式化的,对于小数不格式化就是没有前面的零的,可以这样格式化
select to_char(0.1,'fm9999990.9999') from dual;
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款