在Linq中将字符串格式化为货币

时间:2017-05-11 08:25:50

标签: c# asp.net linq

是否可以通过LINQ将字符串转换为以下代码中的货币:(我希望得到以下格式:1.234,56

An unhandled exception occurred while processing the request.
InvalidOperationException: 'Microsoft.AspNetCore.Mvc.MvcOptions.InputFormatter c2 s' must not be empty. At least one 'Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter' is required to bind from the body.
Microsoft.As fdc pNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider.GetBinder(ModelBinderProviderContext context)

2 个答案:

答案 0 :(得分:2)

'N'ToString格式:MSDN

要点: 数字(“N”)格式说明符将数字转换为“-d,ddd,ddd.ddd ...”形式的字符串,其中“ - ”表示负数字符号(如果需要),“d”表示数字(0 -9),“,”表示组分隔符,“。”表示小数点符号。精度说明符表示小数点后的所需位数。如果省略精度说明符,则小数位数由当前NumberFormatInfo.NumberDecimalDigits属性定义。

123456d.ToString("N2") // outputs "123.456,00" or "123,456.00" depending on culture

答案 1 :(得分:0)

你可以写:

Mieten_kosten = g.Sum(x => x.Field<double>("Mieten_kosten")).ToString("c")

然后Mieten_kosten变量将包含一个带有货币符号的字符串。假设机器具有德语区域设置,Mieten_kosten将在您编写货币时格式化,并以欧元符号(€)为后缀。

一个详细的例子:

var cult = System.Globalization.CultureInfo.GetCultureInfo("de-DE"); // make sure we get the german locale
(12222.3).ToString("c", cult).Dump(); // outputs 12.222,30 €