oracle存储浮点数的一个bug?

数值精度陷阱
在尝试将接近99999999.99999999的浮点数插入到平衡表中时,发现数值被四舍五入而非准确保存。本文探讨了这一现象的原因,并对比了不同数值插入时的表现。
部署运行你感兴趣的模型镜像
版本10.2.0

balance number(16,8).

insert into tablea(balance) values(99999999.99999999)
结果为100000000.00000000,居然也没报错。
insert into tablea(balance) values(trunc(99999999.99999999,8))
仍然为100000000.00000000,仍然没报错。

insert into tablea(balance) values(trunc(99999999.99999994,8))
结果为99999999.99999990。
insert into tablea(balance) values(99999999.99999994)
结果为99999999.99999990。

换个字段 ratio number(9,8)
insert into tablea(balance) values(9.99999999)
结果为9.99999999,这个是正常的。

也就是说,我存入不了99999999.99999999这个数,为啥要四舍五入啊。

为啥啊?

您可能感兴趣的与本文相关的镜像

Anything-LLM

Anything-LLM

AI应用

AnythingLLM是一个全栈应用程序,可以使用商用或开源的LLM/嵌入器/语义向量数据库模型,帮助用户在本地或云端搭建个性化的聊天机器人系统,且无需复杂设置

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值