2016-01-06 6 views
3

Мой вопрос может показаться простым, но все равно не может получить что-то, что работает. Мне нужно настроить формат округления в формате Math.round или что-то сделать, чтобы он работал следующим образом:Как настроить форму округления

Если число 1,6, он должен округлить до 1, если больше или равно 1.7, должно округлить до 2.0. И так для всех других десятичных результатов с # .6 Способ, которым я делаю 1.6, закругленный до 2, должен быть округлен до 1.

Как я могу это сделать?

Спасибо!

+1

[Как выполнить произвольное округление чисел в Java?] (Http://stackoverflow.com/questions/30976081/how-to-do-custom-rounding-of-numbers-in-java) Может быть, это будет полная помощь – Kaa

ответ

4

Просто сделать это:

double threshold = 0.7; 
Math.round(x - threshold + 0.5); 
+0

Прохладный ответ. Но это не выходит за рамки этой точности. 1.6999999 – harshavmb

+0

Я работаю до такой же точности, как Math.round – ArcticLord

+0

@ArcticLord Большое вам спасибо. Это просто и точно, что мне нужно, отлично работает, и мне нужна точность до двух знаков после запятой. Очень благодарен –

0

Вы можете написать метод, который принимает переменную double в качестве входных данных и возвращает целое число, основанное на первой цифре после точки. Например, вы можете преобразовать вход в String и разделить его на десятичную точку. Затем проверьте, если первая цифра после точки меньше или больше, чем 6.

0
Math.floor(x + 0.6); 

Это, возможно, может решить вопрос.

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