请教一to_number() 问题

[复制链接]
查看11 | 回复9 | 2007-9-26 18:42:10 | 显示全部楼层 |阅读模式
SELECT to_number('1.99999999999999') FROM dual;
得到的结果是: 1.99999999999999
然而
SELECT to_number('1.999999999999999') FROM dual;
得到的结果却是2;
何解??
当有效数字在15位以上时候为什么会自动四舍五入.
如果想SELECT to_number('1.999999999999999') FROM dual 得到的结果是1.999999999999999 该怎么办?
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
最初由 jianglinsun 发布
[B]SELECT to_number('1.99999999999999') FROM dual;
得到的结果是: 1.99999999999999
然而
SELECT to_number('1.999999999999999') FROM dual;
得到的结果却是2;
何解??
当有效数字在15位以上时候为什么会自动四舍五入.
如果想SELECT to_number('1.999999999999999') FROM dual 得到的结果是1.999999999999999 该怎么办? [/B]


指定格式啊

select to_number('1.999999999',9999999.99999999999999999999) from dual;
就能可以了
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
奇怪啊
SELECT to_number('1.99999999999999999999999999') FROM dual;
我这个执行出来还不是2呢
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
最初由 Asda双心客 发布
[B]

指定格式啊

select to_number('1.999999999',9999999.99999999999999999999) from dual;
就能可以了 [/B]

这个还是不行呀?
试验:
SELECT to_number('1.99999999999999',9999999.99999999999999999999) FROM dual;
结果为:1.99999999999999
但是
SELECT to_number('1.999999999999999',9999999.99999999999999999999) FROM dual;
结果为:2
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
9I 才会有这种现象
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
10G也不行!
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE
10.2.0.1.0
Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.1.0 - Productio
NLSRTL Version 10.2.0.1.0 - Production
SQL> SELECT to_number('1.999999999999999',9999999.99999999999999999999) FROM dual;
TO_NUMBER('1.999999999999999',
------------------------------

2
SQL>
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
好像是不行啊..呵呵...再研究下...搞不懂为什么
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
SQL> SELECT to_number('1.99999999999999','999999999.999999999999999999') FROM dual;
TO_NUMBER('1.99999999999999','
------------------------------

1.99999999999999
SQL>
這個OK
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
最初由 mc6915 发布
[B]SQL> SELECT to_number('1.99999999999999','999999999.999999999999999999') FROM dual;
TO_NUMBER('1.99999999999999','
------------------------------

1.99999999999999
SQL>
這個OK [/B]

这个小数加位就不行了..,..
看来这个还真是麻烦啊..
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
挺奇怪的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行