Есть ли способ вернуть двойной номер в целом? [Дубликат]

также убедитесь, что вы сопоставляете свой ответ с выходом json. В противном случае он вернет обычный текст. Вы делаете это следующим образом:

getEventList(): Observable<any>{
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });

return this.http.get("http://localhost:9999/events/get", options)
            .map((res)=>{ return res.json();}) <!-- add call to json here
            .catch((err)=>{return err;})

}

8
задан Alex 3 November 2012 в 17:20
поделиться

3 ответа

Вы можете сделать что-то вроде этого:

Double.valueOf(new DecimalFormat("#.##").format(
                                           centimeters)));  // 2 decimal-places

Если вы действительно хотели Math.round :

(double)Math.round(centimeters * 100) / 100  // 2 decimal-places

Вы можете иметь 3 десятичных знака места с помощью 1000, 4 с помощью 10000 и т. д. Мне лично нравится первый вариант больше.

10
ответ дан arshajii 21 August 2018 в 00:40
поделиться

Чтобы использовать метод Math.round, вам нужно изменить только одну строку в вашем коде:

double inches = Math.round(centimeters / 2.54);

Если вы хотите сохранить 2 десятичных цифры, вы можете использовать это:

double inches = Math.round( (centimeters / 2.54) * 100.0 ) / 100.0;

Кстати, я предлагаю вам лучший способ справиться с этими проблемами без округления.

Ваша проблема заключается только в отображении, поэтому вам не нужно менять модель данных , вы можете просто изменить его отображение. Чтобы напечатать номера в нужном вам формате, вы можете оставить свой логический код таким образом и напечатать результат следующим образом:

  1. Добавьте этот импорт в начале вашего кода:
    import java.text.DecimalFormat;
    
  2. Распечатайте вывод таким образом:
    DecimalFormat df = new DecimalFormat("#.##");
    System.out.println(df.format(inches) + " Inch Is " +
                       df.format(centimeters) + " centimeters");
    

Строка "#.##" - это то, как будет отображаться ваш номер (в этом примере с двумя десятичными цифрами ).

7
ответ дан enrico.bacis 21 August 2018 в 00:40
поделиться
  • 1
    Я должен использовать только Math.round. Можете ли вы объяснить мне, как это упражнение работает? * 100,0) / 100,0 – Alex 3 November 2012 в 17:52
  • 2
    Затем используйте другой путь :) – enrico.bacis 3 November 2012 в 17:53
  • 3
    * Я редактировал сообщение ^ ^ – Alex 3 November 2012 в 17:56
  • 4
    Зачем мне это редактировать? Ответ правильный, вы можете использовать первый способ и узнать, как использовать его, когда ваши профессора будут более открытыми :) – enrico.bacis 3 November 2012 в 17:58
  • 5
    Round округляет число до ближайшего целого числа. Например, Math.round (3.456) = 3. Итак, если вы хотите сохранить две десятичные цифры, вы можете сделать этот трюк: умножить на 100.0 (3.456 * 100.0 = 345.6), round (Math.round (345.6) = 346) и то вы можете разделить его снова (346 / 100.0 = 3,46) – enrico.bacis 3 November 2012 в 18:07

Вы можете печатать до двух знаков после запятой, используя следующее.

 System.out.printf("%.2f inch is %.2f centimeters%n", inches, centimeters);
1
ответ дан Peter Lawrey 21 August 2018 в 00:40
поделиться
Другие вопросы по тегам:

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