java 小数四舍五入

请好心人回答~~

怎么能把 double x= 1.9999998 四舍五入到两位小数?
本想用Math.round的 但不知道怎么能选择要四舍五入的小数位数呢 是有什么其他的方法吗?

import java.math.RoundingMode;
import java.text.NumberFormat;

public class Snippet {
public static void main(String[] args) {
double x= 1.9999998;
NumberFormat nf = NumberFormat.getInstance();
nf.setRoundingMode(RoundingMode.HALF_UP);//设置四舍五入
nf.setMinimumFractionDigits(2);//设置最小保留几位小数
nf.setMaximumFractionDigits(2);//设置最大保留几位小数
System.out.println(nf.format(x));
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-06

完整的代码

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

public class BigDecimalRound {
    public static void main(String[] args){
        double x= 1.9999998;

        BigDecimal value=new BigDecimal(String.valueOf(x));
        double rounded = value.round(new MathContext(2, RoundingMode.HALF_UP)).doubleValue();
        System.out.printf("%s -> %2.2f\r\n", value.toString(), rounded);
    }
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网