【问题标题】:webservice returns rounded number instead of decimalwebservice 返回四舍五入的数字而不是小数
【发布时间】:2011-10-31 09:08:50
【问题描述】:

我有一个 Web 服务,它在我的 json 字符串中返回一个十进制值,但它会将 400.00 到 400 的数字四舍五入,但如果它有 400.50,它会返回 400.50,这就是我想要的我如何返回一个值即 400 到 400.00 的格式

错误

{"Message":"LINQ to Entities 无法识别方法 \u0027System.String ToString(System.String)\u0027 方法,并且此方法无法转换为存储表达式。","

代码

产品 = ( 来自 db.Products 中的 p,其中 p.DepartmentId == qDepartment.Id 在 p.Id 上的 db.ProductImages 中加入 i 等于 i.ProductId 进入产品 来自 products.Where(y => y.Dimension == "180X180") 中的 x 选择新产品 { Id = p.Id, 标题 = p.标题, ShortDescription = p.ShortDescription, 品牌 = p.品牌, 型号 = p.Model, 图像 = x.路径, FriendlyUrl = p.FriendlyUrl, SellPrice = p.SellPrice.ToString("N2")/*Error Here changed type to string*/, DiscountPercentage = p.DiscountPercentage, 投票 = p.Votes, TotalRating = p.TotalRating }).ToList();

【问题讨论】:

    标签: jquery asp.net


    【解决方案1】:

    返回 400 还是 400.00 对于任何数学运算都无关紧要,所以我假设这是关于向用户显示小数。在这种情况下,您可以为小数的 ToString() 提供 string format

    decimal number = 400m;
    Console.WriteLine(number.ToString("N2")); // Outputs 400.00
    

    这将始终返回最多两位小数。但请注意,此时它不再是数字,而是字符串。如果您同时使用 web 服务的 JSON 进行显示和数学运算,那么我建议返回小数点,并通过 javscript number.toFixed(2);

    格式化字符串客户端

    【讨论】:

    • 我试过你的例子,但我的代码中出现 Linq To Entities 错误你知道可以解决什么问题吗
    • 啊,我不知道你在使用 LINQ to Entities - 让我们看看我们现在能做些什么,因为我们已经掌握了这些信息
    • 我正在使用 jquery 将数据呈现到表中,也许 javascript 必须对其进行格式化。如果是这样,我将如何在 javascript 或 jquery 中格式化
    • 要在 javascript 中做同样的事情,您只需在号码上 call toFixed(2)
    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    相关资源
    最近更新 更多