Я хочу сравнить два числа:
Я буду использовать double
для их хранения и Я просто хочу рассмотреть первые 3 десятичных числа , поэтому:
import java.math.RoundingMode;
import java.text.DecimalFormat;
public class DecimalComparator {
public static void main(String[] args) {
areEqualByThreeDecimalPlaces(-3.123, -3.123456);
}
public static boolean areEqualByThreeDecimalPlaces (double one, double two) {
boolean same = true;
DecimalFormat df = new DecimalFormat("#.###");
df.setRoundingMode(RoundingMode.FLOOR);
System.out.println(df.format(one));
System.out.println(df.format(two));
if (df.format(one).equals(df.format(two))) {
same = true;
System.out.println("true");
} else {
same = false;
System.out.println("false");
}
return same;
}
}
Код возвращает меня:
-3.123
-3.124
false
почему второе число округляется до - 3,124?