------------ 標題是復制別人的,但是內容是原創------------------
今天在處理B2B項目的bug的時候,發現我post給后台的物品的含稅單價是竟然含有12345666661E10這樣的,是以String類型傳過去的
這樣后台如果不做處理,那樣肯定存在到數據庫的字段有問題。
我采取這樣的處理方式代碼如下:--這個是直接從代碼取出來的
private BigDecimal totalAmount = new BigDecimal(0);new BigDecimal(new Double(totalAmount.doubleValue()).toString())
我在網上查了些方案大都是這樣的處理方式如下:
DecimalFormat df = new DecimalFormat("0"); Double d = new Double("1.2345666661E10"); System.out.println(df.format(d));
這個方式有個問題,是不會保留小數點后小數位.
我的處理方式是可以保留小數位的,具體的詳細方法如下:
BigDecimal bigDecimal = new BigDecimal("1.2345666666E10"); String result = bigDecimal.toString();
另外我將網上的方案進行修改代碼如下:
DecimalFormat df = new DecimalFormat(); df.setMaximumFractionDigits(2);//這里是小數位 Double d = new Double("1.2345666661E10"); System.out.println(df.format(d));
這個方案還沒有進行完整的測試,大家如果有不同的想法一起交流!