在C#中使用JSON.NET序列化为JSON时,需要将十进制变量舍入到小数点后2位

时间:2014-05-07 16:11:04

标签: c# sql-server entity-framework json.net decimal

我在C#中使用SQL Server 2008 R2后端创建了一个应用程序。在我的数据库中,其中一个表包含一个数据类型为money的列。我正在使用Entity Framework(数据库优先)来访问数据库中的数据。在我的EF模型中,归因的money类型表示为decimal

现在,当我序列化该实体的对象时,该十进制属性表示为具有4个小数位。我需要这个只有2位小数。我正在使用JSON.NET将我的对象序列化为JSON。

以下是我得到的内容(请参阅Price属性的值)

{
  ID: 1,
  Name: "Product1"
  Category: 
    {
      ID: 1,
      Name: "Category1"
    },
  Price: 200.0000
}

这是我需要的(参见Price属性的值)

{
  ID: 1,
  Name: "Product1"
  Category: 
    {
      ID: 1,
      Name: "Category1"
    },
  Price: 200.00
}

序列化时是否需要提供任何设置?请给我任何提示。

1 个答案:

答案 0 :(得分:0)

如果在您的数据库中,您认为价格存储为

Price: 200.0000

然后你可以改变你的模型获取属性,只返回2位小数或者你可以 强制数据库只存储2个小数位

decimal Price {get;set;}

你需要实现get函数来舍入到小数点后2位