также убедитесь, что вы сопоставляете свой ответ с выходом 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;})
}
Вы можете сделать что-то вроде этого:
Double.valueOf(new DecimalFormat("#.##").format(
centimeters))); // 2 decimal-places
Если вы действительно хотели Math.round
:
(double)Math.round(centimeters * 100) / 100 // 2 decimal-places
Вы можете иметь 3 десятичных знака места с помощью 1000
, 4 с помощью 10000
и т. д. Мне лично нравится первый вариант больше.
Чтобы использовать метод Math.round
, вам нужно изменить только одну строку в вашем коде:
double inches = Math.round(centimeters / 2.54);
Если вы хотите сохранить 2 десятичных цифры, вы можете использовать это:
double inches = Math.round( (centimeters / 2.54) * 100.0 ) / 100.0;
Кстати, я предлагаю вам лучший способ справиться с этими проблемами без округления.
Ваша проблема заключается только в отображении, поэтому вам не нужно менять модель данных , вы можете просто изменить его отображение. Чтобы напечатать номера в нужном вам формате, вы можете оставить свой логический код таким образом и напечатать результат следующим образом:
import java.text.DecimalFormat;
DecimalFormat df = new DecimalFormat("#.##");
System.out.println(df.format(inches) + " Inch Is " +
df.format(centimeters) + " centimeters");
Строка "#.##"
- это то, как будет отображаться ваш номер (в этом примере с двумя десятичными цифрами ).
Вы можете печатать до двух знаков после запятой, используя следующее.
System.out.printf("%.2f inch is %.2f centimeters%n", inches, centimeters);