限制响应中的小数位数

时间:2015-01-12 03:13:40

标签: java

我是Java的新手,我现在正在尝试不同的东西......主要是创建简单的计算器,只是为了练习使用这种语言。我的问题是,如何将响应中的小数位数限制为仅2或3个小数位,而不是我现在得到的数字。这是我为毕达哥拉斯计算器编写的代码......

基本上,我希望“回答”只返回一个只有几位小数的数字,我无法弄清楚如何去做。

谢谢!

public class PythagoreanTheorem {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double numOne, numTwo, aSquared, bSquared, cSquared, answer;

        System.out.println("Enter the value for Side-A: ");
        numOne = sc.nextDouble();

        System.out.println("Enter the value for Side-B: ");
        numTwo = sc.nextDouble();

        aSquared = numOne * numOne;
        bSquared = numTwo * numTwo;
        cSquared = aSquared + bSquared;

        answer = Math.sqrt(cSquared);

        System.out.println("Side-C is: " + answer);
    }
}

2 个答案:

答案 0 :(得分:5)

您可以使用 DecimalFormat类

DecimalFormat newFormat = new DecimalFormat("#.##");
double twoDecimal =  Double.valueOf(newFormat.format(answer));

使用BigDecimal

BigDecimal bd = new BigDecimal(d).setScale(2, RoundingMode.HALF_EVEN);
d = answer.doubleValue();

没有BigDecimal

d = Math.round(d*100)/100.0d;

答案 1 :(得分:3)

您可以使用format String

System.out.printf("Side-C is: %.3f%n", answer);

将获得3位小数。