Невозможно воспроизвести:
public class Test
{
public static void main(String[] args)
{
System.out.println(Math.ceil(23.46)); // Prints 24
System.out.println(Math.floor(23.46)); // Prints 23
}
}
Я подозреваю, что либо у вас нет входных данных, которые, как вы думаете, или вы не пишетеиз выходных данных, которые вы думаете, что вы есть.Math.floor
/ ceil
сами работают нормально.Единственный раз, когда они вернут одно и то же значение, это когда входные данные уже являются целыми числами.Вы говорите о разборе вашего двойника ... я думаю, что ошибка лежит там.Пожалуйста, покажите нам короткую, но полную программу, которая демонстрирует проблему.
(Могут быть другие сценарии вокруг очень больших значений, где точное целевое целое число не может быть представлено точно как double
- у меня нетпроверил - но это, конечно, не тот случай.)