Oracle number類型查詢精度丟失的解決方法


Oracle number類型查詢時,有時候會遇到精度丟失的問題,下面為您介紹了一個解決Oracle number類型查詢精度丟失的方法,供您參考。

一、Oracle number類型查詢需求中要求查到一個字段的值然后保持小數點后2位//如果采用如下方法從ResultSet得到一個數字,而這個數字大於40000,則得到的數據將不准確

floatzcxxhj+=rss.getFloat(3);

//而如果采用double就沒有問題

doublezcxxhj+=rss.getDouble(3);

//四舍五入小數點后2位

list.add(newBigDecimal(zcxxhj).setScale(2,BigDecimal.ROUND_HALF_UP));

二,如果Oracle number類型查詢要求從數據庫查出來的數保持到小數點后2位,然后直接再前台展示那么我們可以采用如下查詢方法:例子:

selectfpdm, fphm, fkdw, to_char(kprq,'yyyy-mm-dd'), to_char(xxhj,'FM9999999999990.00'), Decode(fpzt,'1','正票','2','紅票','3','廢票') fromwskp_fpkj_zbxx_111000861071 where11=1 andnsrsbh='110999999999999'

其中的xxhj是number類型,我們可以將其通過 to_char(xxhj, 'FM990.00'),保持小樹點后最少2位,小數點前面做多3位,最少1位;又如 to_char(xxhj, 'FM9990.0099'),就是保持小數點后最少2位,最多4位,小數點前面做多4位,最少1位 三、如果要求查到的數相加后保持小樹點后2位

doubled=rss.getDouble(3)+rss.getDouble(4); BigDecimalbigDecimal=newBigDecimal(d).setScale(2,BigDecimal.ROUND_HALF_UP); beanData.setXxhj(bigDecimal.toString());


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM