在这个程序中,我将类型double
的计算值打印到屏幕上。但是目前计算给出了14位小数。我的问题是,是否有一个Java设施来包装输出语句可以指定小数位数?例如round(mark1,2)
目前的印刷方式是这样的:
double markOne = intent.getDoubleExtra("number1", 0);
result1.setText(String.valueOf(markOne)+"mm");
是否可以将setText
包装在Java方法中,或者我是否必须创建自定义格式?有人能用我的代码给我一个例子吗?感谢
答案 0 :(得分:9)
您可以使用小数格式器
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));
答案 1 :(得分:2)
我认为最好使用BigDecimal类型而不是Double。 你可以做到
BigDecimal myValue= new BigDecimal(12.3577);
myValue= myValue.setScale(2, BigDecimal.ROUND_HALF_UP);
myValue将是12.36
我希望这会有所帮助
答案 2 :(得分:0)
试试这个:
int decimalPlaces = 2;
markOne = double(int(markOne*Math.pow(10, decimalPlaces)))/Math.pow(10, decimalPlaces);