尝试使用 Math.floor 对数字进行舍入,但它不会在正确的位置切断它们

Trying to use Math.floor to round numbers but it doesn't cut them off at the right point

我正在尝试使用 Math.floor 将商四舍五入到 1、2 和 3 位,但它不会在正确的位置截断数字

Scanner input = new Scanner(System.in);
    double x;
    double y;


    System.out.println("Enter 2 values seperated by a space, x and y to enter into the eqation: (x/y).");
    x = input.nextDouble();
    y = input.nextDouble();

    for(int i = 1; i < 4.0; i++){
        double z = Math.floor((x/y)* (10^i) + 0.5) / (10^i);
        System.out.println(z);

    }

这是输出之一:http://imgur.com/SuWG0Gr

10^i 并不表示 Java 中的幂。它的意思是按位异或。你应该使用 Math.Pow(10, i).

需要使用Math.pow(10, i),因为^是位运算符:

double z = Math.floor((x/y)* Math.pow(10,i) + 0.5) / Math.pow(10,i);