首页 新闻 会员 周边 捐助

我要一个方法。返回decimal的。

0
悬赏园豆:10 [已解决问题] 解决于 2016-08-25 14:04
我要一个方法。返回decimal的。
如果传入的是0.23569745
我要得到0.23

如果传入的是0.000000000235689
我要得到的是0.00000000023
 
小数部分。从不是0的开始,截取两位。
最好分四舍五入和不四舍五入的。
davidkam的主页 davidkam | 初学一级 | 园豆:53
提问于:2014-06-17 22:45
< >
分享
最佳答案
0

睡前随手写的,应该还有很多没考虑到得情况

package org.lic.test;


import java.math.BigDecimal;
import java.math.MathContext;

/**
 * Created by lc on 14-5-30.
 */
public class Main1 {
    public static void main(String[] args) {
        System.out.println(parseDecimal("0.0000235689", false).toString());
        System.out.println(parseDecimal("-0.00235689", true).toString());
    }


    // may throw NumberFormatException
    public static BigDecimal parseDecimal(String src, boolean isRounded) {
        // check src
        new BigDecimal(src);

        if (isRounded) {
            return new BigDecimal(src).round(new MathContext(2));
        } else {
            String tmp = new BigDecimal(src).round(new MathContext(3)).toString();
            return new BigDecimal(tmp.substring(0, tmp.length() - 1));
        }

    }
}
收获园豆:10
@李城 | 菜鸟二级 |园豆:263 | 2014-06-17 23:43

多谢。

davidkam | 园豆:53 (初学一级) | 2014-09-04 13:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册