Math.round不能正常工作

时间:2013-09-19 18:23:31

标签: java math

每当从calculateVolume()返回一个double时,它得到的值为1.0,这需要显示为1.00(2位小数而不是1位)。 这可能很容易,但我现在没有看到我做错了什么。有人可以帮助我并给出一个简短的解释。非常感谢!

public class Block extends Shape {
private double length;
private double width;
private double height;


public Block(double length, double width, double height){
    this.length = length;
    this.width = width;
    this.height = height;

}

@Override
public double calculateVolume(){ 

    return Math.round((length * width * height)* 100.0) / 100.0;
}

3 个答案:

答案 0 :(得分:1)

您有两种方法可以解决这个问题:

1。请查看DecimalFormat文档了解详情。

    DecimalFormat df = new DecimalFormat("#.##");
    System.out.print(df.format(calculateVolume()));

2。另一种选择是:Formatting Numeric Print

System.out.printf("%.2f", calculateVolume());

希望它有所帮助。

答案 1 :(得分:1)

使用DecimalFormat类(并确保查看该文档!)以格式化输出数字。您也可以使用标准String formatting options来满足不太复杂的要求(但我更喜欢DecimalFormat)。

DecimalFormat fmt = new DecimalFormat("#.##"); // Two decimal places
System.out.print(fmt.format(calculateVolume()));

答案 2 :(得分:0)

System.out.printf("%.2f", yourVariable);

您还可以在http://docs.oracle.com/javase/tutorial/java/data/numberformat.html

找到不同的格式化方法