首页 > 其他分享 >后端long类型传到前端精度丢失

后端long类型传到前端精度丢失

时间:2023-04-20 18:11:44浏览次数:36  
标签:long 后端 前端 value 丢失 类型 public 精度

问题:

c# 的long类型精度比前端JS的number精度高,前端JS 的long类型只有17位,当后端传给前端的long类型超过17位时,就会造成数据精度丢失。

解决方案:

 1. 我们可以自定义一个json序列化的转换器,将long类型转换为string类型。代码如下:

    public class LongToStringConverter : JsonConverter<long>
    {
        public override long ReadJson(JsonReader reader, Type objectType, long existingValue, bool hasExistingValue, JsonSerializer serializer)
        {
            long value = Convert.ToInt64(reader.Value);
            return value;
        }

        public override void WriteJson(JsonWriter writer, long value, JsonSerializer serializer)
        {
            string stringValue = value.ToString();
            writer.WriteValue(stringValue);
        }
    }

2. 配置我们自定义的 LongToStringConverter 

        services.AddControllers().AddNewtonsoftJson(options =>
        {
           
          // 将long类型转换为string类型,从而解决后端long类型传到前端精度丢失的问题。
            options.SerializerSettings.Converters.Add(new LongToStringConverter());
        });

 

标签:long,后端,前端,value,丢失,类型,public,精度
From: https://www.cnblogs.com/xinyublog/p/17337797.html

相关文章

  • ViewPager2+Fragment+FragmentStateAdapter遇到系统主题更换时Fragment数据丢失
    1.问题描述:在ViewPager设置壁纸,导致Activity获取Fragment数据丢失2.解决方案:设置 vp.isSaveEnabled=false  ,设置不保存,在适配器中销毁item 引发问题:vp重建之后,会丢失之前所在的位置解决方案:Activity onSaveInstanceState中保存数据,在 o......
  • jdbc 报错 - 索引中丢失 IN 或 OUT 参数:
    jdbc报错-索引中丢失 IN或OUT参数:通常产生这种异常,是因为语句参数类型不一致所导致,如preparedStatement中的参数本应该是int/integer类型,但是设置参数是setString(1,String.valueof(xxx));或是现在流行的hibernate和ibatis的参数类型配置有问题,Integer配置为varchar2了。......
  • Vue3+TS+Node打造个人博客(后端架构)
    在使用Express搭建后端服务时,主要关注的几个点是:路由中间件和控制器SQL处理响应返回体数据结构错误码Web安全环境变量/配置路由和控制器路由基本上是按模块或功能去划分的。首先是按模块去划分一级路由,各个模块的子功能相当于是用二级路由处理。简单举个例子,/article......
  • BigDecimal 的floatValue 方法 返回数值 精度丢失
    packagetest;importjava.math.BigDecimal;importjava.text.DecimalFormat;publicclassA{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubBigDecimala=newBigDecimal("641825.59");System.out.p......
  • mysql重连,连接丢失:The Last Packet Successfully Received From the Server
    源:http://nkcoder.github.io/评:1.1错误信息:Causedby:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Thelastpacketsuccessfullyreceivedfromtheserverwas20,820,001millisecondsago.Thelastpacketsentsuccessfullytotheserverwas20,82......
  • AES算法 前端JavaScript加密 后端Java解密
    CryptoJShttps://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js中文文档https://cryptojs.gitbook.io/docs/varAES=function(){ constuuid32="00010203-04050607-08090A0B-0C0D0E0F".toString();constparam=Array.from(uuid32......
  • 一种面向后端的微服务低代码平台架构设计
    作者:京东科技 常姜洲一、背景近期参加公司组织的极客中餐厅训练营,我们所在的小组接到的课题是微服务的低代码平台架构设计。目标是:结合京东业务研发实际情况,针对后端研发人员,设计一个微服务低代码平台,助力更高效低交付业务需求。现已结业,将我在本次项目中沉淀设计出的设计文档整理......
  • llvm后端disassembler流程
    一、注册 在添加\(disassembler\)时,在llvm/lib/Target/XXX/Disassembler/XXXDisassembler.cpp中会通过\(RegisterMCDisassembler()\)将该\(pass\)进行注册。二、调用(1)在\(XXXDisassembler.cpp\)中的\(getInstruction(...)\)函数重新定义了基类\(MCDisassembler\)......
  • 若依前端后端分离 代码生成修改(1)
    模板引擎修改2023年3月7日9:26主要配置参数的引用和定义表字段.vm模板:参数名使用位置(.vm模板文件中)前端表单表头默认值来源db表:gen_tablepackageNamepackage${packageName}.controller;生成包路径配置文件Package_nameClassName和class......
  • 若依前后端分离 代码生成修改(2)
    修改若依代码生成模块目标:多级目录情况下实现模块名/mvc名[controller/…]/功能名/XXXController原格式:多级目录:模块名/功能名/mvc名[controller/…]/xxxController修改共分为两部分:文件路径和模板代码中的引用路径若依代码生成配置1.修改生成文件路径Com......