2016-01-10 3 views
0

Я хочу преобразовать двойные значения в значения int в java. Я сталкиваюсь с проблемой, что простое кастинг не работает так, как я хочу, и Math.round() тоже не делает этого.Округление двойного на int всегда меньше

Моя цель состоит в том, чтобы удвоить округление до следующего меньшего значения int. В следующем:

0.5 -> 0 
1.7 -> 1 
2.9 -> 2 
-0.3 -> -1 
-3.9 -> -4 

Проблема в основном являются различными методами обработки меньше 0. Так как я не хочу, чтобы округлить до высшего, но и к более низкому значению.

Есть ли для этого функция java-native или как ее можно эффективно реализовать? Я подумал о следующем, но я бы предпочел использовать функцию java-native.

double d = -0.1D; // or whatever else 
int i = (double) ((int) d) <= d ? (int) d : (int) d - 1; 

ответ

2

Использование

double d = ... 
int n = (int)Math.floor(d); 
+0

Тьфу, я на самом деле пытался, что один, но реализовал ошибку перед ... Так я думал, что это не ведет себя, как я хотел. Спасибо, хотя xD –

Смежные вопросы