让Double类型完整显示,不用科学计数法显示E
------------ 标题是复制别人的,但是内容是原创------------------
今天在处理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));
这个方案还没有进行完整的测试,大家如果有不同的想法一起交流!