我是靠谱客的博主 自信镜子,最近开发中收集的这篇文章主要介绍完美解决!处理精度丢失问题点1. 解决后端响应数据给前端出现精度丢失问题2. Freemark BigDecimal数据显示精度丢失问题3. 前端调用方法传值精度丢失问题,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
目录
1. 解决后端响应数据给前端出现精度丢失问题
2. Freemark BigDecimal数据显示精度丢失问题
3. 前端调用方法传值精度丢失问题
1. 解决后端响应数据给前端出现精度丢失问题
- 解决方式一:在项目中都是将注解标注在对应字段上,在Json序列化的时候把Long自动转为String。
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
- 解决方式二:全局配置 每个实体类的id字段都需要加@JsonSerialize注解有些繁琐,我们可以通过先修改Jackson转换器,实现全局统一处理Long类型字段。如下所示:
@EnableWebMvc
@Configuration
public class MvcConfig implements WebMvcConfigurer {
/**
* 重写Jackson转换器
* Long类型转String类型
*
* 解决前端Long类型精度丢失问题(js解析只能解析到16位)
*
* @param converters
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
MappingJackson2HttpMessageConverter jackson2HttpMessageConverter =
new MappingJackson2HttpMessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(BigInteger.class, ToStringSerializer.instance);
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
objectMapper.registerModule(simpleModule);
jackson2HttpMessageConverter.setObjectMapper(objectMapper);
converters.add(jackson2HttpMessageConverter);
converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8));
}
}
- 解决方式三:全局配置序列化返回 JSON 处理
@Configuration
public class JacksonConfig {
@Bean
@Primary
@ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
{
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
// 全局配置序列化返回 JSON 处理
SimpleModule simpleModule = new SimpleModule();
//JSON Long ==> String
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
objectMapper.registerModule(simpleModule);
return objectMapper;
}
}
2. Freemark BigDecimal数据显示精度丢失问题
${数据?c} 就是在后面添加?c
3. 前端调用方法传值精度丢失问题
function fa(id){
//用BigInt数据类型转换一次即可
let ids=BigInt(id)
}
最后
以上就是自信镜子为你收集整理的完美解决!处理精度丢失问题点1. 解决后端响应数据给前端出现精度丢失问题2. Freemark BigDecimal数据显示精度丢失问题3. 前端调用方法传值精度丢失问题的全部内容,希望文章能够帮你解决完美解决!处理精度丢失问题点1. 解决后端响应数据给前端出现精度丢失问题2. Freemark BigDecimal数据显示精度丢失问题3. 前端调用方法传值精度丢失问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复