请好心人回答~~
怎么能把 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));
}
}
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);
}
}