WCF以JSON格式返回double,并在昏迷后限制数字

本文关键字:昏迷 数字 JSON 格式 返回 double WCF | 更新日期: 2023-09-27 17:49:34

我需要以json格式返回双倍值,并将昏迷后的数字数量限制为6。

例如:12.310203

当编号为12.310203123123 时

我不想转换成字符串。

WCF以JSON格式返回double,并在昏迷后限制数字

Math.Round(12.310203123123, 6, MidpointRounding.ToEven)

您也可以更改MidpointRounding.AwayFromZero。欢迎在这里查看文档

您也可以忽略这种过载,只需执行以下操作:Math.Round(12.310203123123, 6),如果你不在乎四舍五入的话。

Microsoft JSON序列化程序很简单,在序列化为JSON方面做得很好。我猜你已经知道了,你想要别的东西。我有时会有自定义的JSON序列化需求——例如,一个字符串需要在没有引号的情况下进行序列化,以便在JavaScript中将其解析为对象。MS序列化程序没有这么做。

因此,对于这种情况,我使用了James Newton King的(优秀的(JSON.NET,它允许自定义序列化处理程序。

使用JSON.NET可以做到这一点。。。

[DefaultValue(null(,JsonProperty(PropertyName="MyCustomJSON"(,Json Converter(typeof(MyCustomJsonConverter((]公共字符串MyCustomJSON{get;set;}

公共类MyCustomJsonConverter:Newtonsoft.Json.JsonConverter{公共重写bool CanConvert(System.Type objectType({返回true;}

    public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer)
    {
        return existingValue;
    }
    public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
    {
        writer.WriteRawValue(value as string);
    }
}
double d = 12.310203123123;
double round = Math.Round(d, 6);