String nowvalue = "1659237.509934"; int i1 = nowvalue.indexOf("."); String substring = nowvalue.substring(i1 - 4).replace(".", ""); String substrings = nowvalue.substring(0, i1 - 4); nowvalue = substrings + "." + substring; BigDecimal bigDecimal = new BigDecimal(nowvalue); bigDecimal = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println("bigDecimal = " + bigDecimal);优化代码
时间: 2024-04-08 12:30:05 浏览: 53
C++编程命名规则.doc
你可以使用以下代码对给定的字符串进行优化:
```java
String nowvalue = "1659237.509934";
BigDecimal bigDecimal = new BigDecimal(nowvalue);
bigDecimal = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("bigDecimal = " + bigDecimal);
```
这段代码将会输出一个保留两位小数的BigDecimal值。它通过使用BigDecimal类的setScale()方法来设置小数位数,并使用ROUND_HALF_UP舍入模式来进行四舍五入。不再需要对字符串进行截取和替换操作,直接使用BigDecimal类进行精确计算。
阅读全文