下边这个式子和我的预想结果不一致,想知道ORACLE对这个计算作了那些内部处理。
SELECT TRUNC((1/3)*3) FROM DUAL;
〈预想结果〉 1
〈实际结果〉 0
各位帮忙解释一下吧,谢谢
SELECT TRUNC((1/3)*3) FROM DUAL;
〈预想结果〉 1
〈实际结果〉 0
各位帮忙解释一下吧,谢谢
解决方案 »
- datalength函数计算nvarchar2类型字符串的长度
- 高分求解,在win2003调用ORACLE存储过程权限不足问题
- oracle设置监听密码大疑问
- oracle的随机函数为什么不能查处随机的值.解决马上给分
- Oracle 9i创建表时不能指定默认值吗?
- 求助关于Oracle存储过程变量的问题
- 如何更新Oracle Spatial中SDO_GEOMETRY对象的坐标数组SDO_ORDINATES?
- 问个查询效率问题,我两张表数据都是60万,我sql语句是:select * from test08 a where a.nbr not in(select nbr from disct@towe whe
- 数据管理安装删除了原来数据,急需解决
- 写了个函数,但有错误,请达人帮忙解决一下。在下在线等
- 字段数据丢失
- 快速报表工具
1/3*3=0.3333333333333333333333..*3=0.9999999999999999999999...
没有trunc的时候四舍五入进位到1.
round函数,可四舍五入例: SELECT TRUNC((1/3)*3) FROM DUAL; 结果:0
SELECT round((1/3)*3) FROM DUAL; 结果:1
trunc((10/30)*30) ->10 <和预想一致>
trunc((100/300)*300) ->99 <和预想不一致>
trunc((1000/3000)*3000) ->1000<和预想一致>
trunc((10000/30000)*30000)->9999<和预想不一致>
浮点数运算。首先在所有的计算机教科书中都讲到了 单/双精度的运算是不准确的!