Округление двойного для превращения его в интервал (Java)

Прямо сейчас я пробую это:

int a = round(n);

где n a double но это не работает. Что я делаю неправильно?

109
задан Sean Bright 24 October 2016 в 19:01
поделиться

3 ответа

Какой тип возвращаемого значения метода round () во фрагменте кода?

Если это Math .round () , он возвращает Long, если входным параметром является Double.

Итак, вам нужно будет привести возвращаемое значение:

int a = (int) Math.round(doubleVar);
222
ответ дан 24 November 2019 в 03:20
поделиться

Вам действительно нужно опубликовать более полный пример, чтобы мы могли увидеть, что вы пытаетесь сделать. Из того, что вы опубликовали, я вижу вот что. Во-первых, нет встроенного метода round () . Вам нужно либо вызвать Math.round (n) , либо статически импортировать Math.round , а затем вызвать его, как и у вас.

-1
ответ дан 24 November 2019 в 03:20
поделиться
import java.math.*;
public class TestRound11 {
  public static void main(String args[]){
    double d = 3.1537;
    BigDecimal bd = new BigDecimal(d);
    bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
    // output is 3.15
    System.out.println(d + " : " + round(d, 2));
    // output is 3.154
    System.out.println(d + " : " + round(d, 3));
  }

  public static double round(double d, int decimalPlace){
    // see the Javadoc about why we use a String in the constructor
    // http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html#BigDecimal(double)
    BigDecimal bd = new BigDecimal(Double.toString(d));
    bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
    return bd.doubleValue();
  }
}
3
ответ дан 24 November 2019 в 03:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: