например, у меня есть результат площади круга = 4,3, мой вопрос: «когда я получаю число больше 0,5 [например (4,6, 4,7, 4,8, 4,9)], я хочу, чтобы он дал мне 5,0, но если меньше .5 [4.4, 4.3, 4.2, 4.1] потом покажи мне 4.0'
я пробовал Math.round()
, но он преобразует float в int, как [4], но я не хочу преобразовывать его в int
Есть ли способ сделать это?
вот мой код:
private float radius;
private double result;
public void show(float x)
{
this.radius = x;
this.result=Math.pow(x,2)*Math.PI;
System.out.println("result is: "+result);
}
ясно, я хочу, чтобы оба метода (Math.floor()) и (Math.ceil()) были в одной функции, спасибо
Math.round(4.5f)
вернет 5 и сделает именно то, что вы хотите. И преобразовать int в float/double на самом деле совсем не сложно. - person OH GOD SPIDERS   schedule 15.01.2018Math.floor( area + .5 )
. - person Thomas   schedule 15.01.2018(float)Math.round(x)
снова делает int числом с плавающей запятой. Однакоfloat
иdouble
являются приближением (суммы степеней 2) без фиксированного числа десятичных знаков, а 5.3 на самом деле имеет небольшую ошибку, 10000 * 5,3 не будет точно 53000. - person Joop Eggen   schedule 15.01.201812.01 * 4.0
ровно48.040
. (Кстати, только около 10% людей в мире хорошо говорят по-английски, и их число постепенно уменьшается.) - person Joop Eggen   schedule 15.01.2018