解决方法
1 。把表建立成 varchar2 ()
// 用到这个字段的时候都要 oracle内部转换 小app 就算了大app 几百万上亿的记录 。。。???
2 select to_char( .... ) 输出
///要修改很多地方 哭~~~~~ 不统一
3 jdbc 这里处理
resultset.getString(1); ------ 读取结果集的这个 字段获取的时候为String 然后处理~~
读取了非 科学计数法的问题了。
4 sqlplus 中是 可以任意来。关键的问题是有个session 参数 set numwidth 90
SQL> select 0.000000073 from dual;
.000000073
----------
7.3E-8
Executed in 0 seconds
SQL> show numw
numwidth 10
SQL> select round( 0.00000073 , 10 ) , 0.9999991111111111 , 0.00000073777 f
rom dual;
ROUND(.00000073,10) .9999991111111111 .00000073777
------------------- ----------------- ------------
.00000073 .999999111 7.3777E-07
SQL> set numw 30 ;
SQL> select round( 0.00000073 , 10 ) , 0.9999991111111111 , 0.00000073777 f
rom dual;
ROUND(.00000073,10) .9999991111111111
------------------------------ ------------------------------
.00000073777
------------------------------
.00000073 .9999991111111111
.00000073777
SQL>
SQL> select to_char( round( 0.00000073 , 10 ) ) , 0.9999991111111111 , 0.10000073777 from dual;
TO_CHAR(ROUND(.00000073,10)) .9999991111111111 .10000073777
---------------------------------------- ----------------- ------------
.00000073 0.999999111111111 0.1000007377
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0
Connected as hr
SQL> select 2* 0.111111111111111 from dual;
2*.111111111111111
------------------
0.222222222222222
SQL>
SQL> select 2* 0.111111111111111111111111111111 from dual;
2*.111111111111111111111111111
------------------------------
0.222222222222222
SQL> select to_char ( 2* 0.111111111111111111111111111111 ) from dual;
TO_CHAR(2*.1111111111111111111
----------------------------------------
.222222222222222222222222222222
SQL>