本文介绍了在不使用格式化的printf的情况下,是否可以在Java中进行精确转换?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此行将产生双精度值 3.33333333335
System.out.println( + name + = +(double)sum / 3的平均标记);
是否可以设置宽度为
推荐答案
您可以使用 DecimalFormat
或 BigDecimal
如下:
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
int sum = 10;
DecimalFormat decimalFormat = new DecimalFormat("#.##");
System.out.println(Double.valueOf(decimalFormat.format((double) sum / 3)));
// Another way
System.out.println(new BigDecimal(String.valueOf((double) sum / 3)).setScale(2, RoundingMode.HALF_UP));
// The better way using BigDecimal - thanks to @Andreas
System.out.println(BigDecimal.valueOf(sum).divide(BigDecimal.valueOf(3), 2, RoundingMode.HALF_UP));
}
}
输出:
3.33
3.33
3.33
这篇关于在不使用格式化的printf的情况下,是否可以在Java中进行精确转换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!