字符串转换成double类型的数(而且需要移动小数点)

Overmind_ 发布于 2016/05/12 18:30
阅读 497
收藏 0
怎样把一个字符串转换成一个double类型的数,并且有小数点的移动。比如说(字符型)的11727.2391转换成(Double型)的117.272391
加载中
0
风雨中的灰灰
风雨中的灰灰
    String str="11727.2391";
    BigDecimal b1=new BigDecimal(str);
        BigDecimal b2 = new BigDecimal("100");
        Double  m=b1.divide(b2,str.length(),BigDecimal.ROUND_HALF_UP).doubleValue();
    System.out.println(m);
O
Overmind_
String str = "11727.2391"; Double dd= Double.parseDouble(str); String aa = String.format("%1.6f", dd*0.01); Double cc= Double.parseDouble(aa); System.out.println(cc); 这种方法也是可以的
0
O
Overmind_
自己先顶一楼,有木有大神
0
xpbob
xpbob
Double.parseDouble(xxxx)
Mr_Tank_
Mr_Tank_
Double.parseDouble(xxxx)/100 ?
O
Overmind_
还要移动小数点,大哥
0
爱吃荷包蛋i
爱吃荷包蛋i
移动几位小数固定吗?这个逻辑在业务里自己写不就可以了.
0
小小志
小小志
使用BigDecimal
0
这个昵称应该没有人用
这个昵称应该没有人用

double d = Double.parseDouble("11727.2391")/Math.pow(10, 3);

把pow函数里的3改成你要移动的位数就可以了

O
Overmind_
回复 @这个昵称应该没有人用 : 用BigDecimal 就可以了,楼下的那位大神的方法可行
这个昵称应该没有人用
这个昵称应该没有人用
回复 @Overmind_ : 然后再调用BigDecimal的doubleValue()方法,就可以了
这个昵称应该没有人用
这个昵称应该没有人用
回复 @Overmind_ : new BigDecimal("11727.2391").divide(new BigDecimal(Math.pow(10, 3)));
这个昵称应该没有人用
这个昵称应该没有人用
回复 @Overmind_ : double是这样的,要么再用Math类里的方法进行取舍,要么可以用相同的思路操作BigDecimal
O
Overmind_
得出的结果是117.27239100000001
下一页
返回顶部
顶部