【问题标题】:String Formatting in C# to handle decimal placesC#中的字符串格式化处理小数位
【发布时间】:2016-11-17 12:35:57
【问题描述】:

在 Web API 中有一个数字数据类型字段,我们从 oracle DB 中检索并以 JSON 格式返回。由于它是数字类型,它显示在结果 364578.0 所以现在使用字符串格式,我们试图避免像

这样的小数点
 serializer.Serialize(writer, string.Format("{0:n0}",reader[i]));

它确实解决了这个问题,它确实返回了省略小数位的结果,但显示的结果类似于 364,578 我只是在检查是否有可能返回类似于 364578 的结果

【问题讨论】:

  • 你为什么要关心.呢?为什么不按原样序列化它?
  • @PatrickHofman 客户端 API 用户正在请求我们是否可以删除小数位。格式化有什么缺点吗?
  • 在这种情况下,我总是想知道是否可以解决或解决问题。在这种情况下,您可能需要解决它。

标签: c# string-formatting jsonserializer


【解决方案1】:

试试

serializer.Serialize(writer, string.Format("{0:f0}",reader[i]));

F 格式不使用千位分隔符。详情请查看MSDN

【讨论】:

    【解决方案2】:

    我们在 cmets 进行了一些讨论。您似乎无法解决问题,因为 API 不在您的掌控之中。这意味着您必须解决它。

    根据您的问题,我了解另一端需要整数而不是小数。好的,那么让我们给它一个int

    serializer.Serialize(writer, Convert.ToInt32(reader[i]));
    

    【讨论】:

      【解决方案3】:

      您可以使用自定义格式

      serializer.Serialize(writer, (decimal)reader[i].ToString("0.#");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-02
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多