问题描述,通过postman调用接口返回信息拿到的BigDecimal类型的数据是正常的,后端返回给ios丢失了小数后面的值
正常应该是"price":“100.00”
但是ios拿到的是"price":“100” 造成精度丢失,
解决办法是在返回对象里面的price属性,,,添加注解保证后端返回的是什么数据,ios原生接收的就会是什么数据,还需要添加get/set方法统一处理精度保留位数。
如下所示代码:
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal price;
public BigDecimal getPrice() {
return price == null ? null : price.setScale(2, BigDecimal.ROUND_HALF_UP);
}
public void setPrice(BigDecimal price) {
this.price = price;
}