尝试使用 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);
我正在尝试使用 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);