更改货币符号位置

Change the currency symbol placement

我想知道是否可以更改货币符号的默认位置。 例如,默认输出将是这样的:3,00 但我希望它像那样 123,00 $.

请注意,文化可能会随着用户设置而改变

public CultureInfo CurrencyCulture { get; }

public string FormatCurrency(decimal value)
{
    var decimalPlace = _config.GetValue<int>("Global.CurrencyDecimalPlace");
    return value.ToString($"C{decimalPlace}", CurrencyCulture);
}

CSHTML 内部

<tr>
    <td>
        <div>@item.Product.Name</div>
    </td>
    <td>@CurrencyService.FormatCurrency(item.ProductPrice)</td>
    <td>@item.Quantity</td>
    <td>@CurrencyService.FormatCurrency(item.ProductPrice * item.Quantity))</td>
</tr>

您缺少的一点信息是 属性 CurrencyPositivePattern and its more complex counterpart CurrencyNegativePattern

在备注部分你可以找到这个table

Value   Associated pattern
0       $n
1       n$
2       $ n
3       n $

所以你的代码可以写成

public string FormatCurrency(decimal value)
{
    CurrencyCulture.NumberFormat.CurrencyPositivePattern = 3;
    var decimalPlace = _config.GetValue<int>("Global.CurrencyDecimalPlace");
    return value.ToString($"C{decimalPlace}", CurrencyCulture);
}