.NET Core接口返回数据的过程中,数值精度丢失问题处理

74 阅读1分钟

后端接口返回的数据是59.8,但是前端得到的是59.7999992

System.Text.Json

    //自定义转换器
    public class SingleConverter : JsonConverter<Single>
    {
        public override Single Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            return reader.GetSingle();
        }

        public override void Write(Utf8JsonWriter writer, float value, JsonSerializerOptions options)
        {
            writer.WriteStringValue(value.ToString());
        }
    }
    
    //在startup的ConfigureServices中设置
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.Converters.Add(new SingleConverter());
    })