如何在 C# 中使用自定义数字格式字符串显示点

How to display dot using Custom Numeric Format Strings in C#

我想以 100 грн.(乌克兰格里夫纳)格式显示 decimal 产品价格。当我使用货币模式 .ToString("c") 时,我得到 符号,我不想使用它,所以我决定尝试类似 .ToString("#.## грн.") 的东西,但没有显示点。我得到 грн 输出但期望 грн.。我怎样才能做到这一点?我想使用字符串模式作为本地化的一部分,所以我可以使用类似 .ToString(Settings.CurrencyOutputPattern) 的东西,其中 CurrencyOutputPattern"c" 代表 USD"#.## грн." 代表 UAH"#.## руб." 对于 RUB

您可以实施自己的 String/Decimal 扩展以使其成为 grivan

public string ToGrivna(this decimal ammount)
{
    return ammount.ToString("0.##")+" грн."
}

如果你想要更改货币,那么你可以克隆 CurrentCulture 并修改它。

CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.CurrencySymbol = "грн.";

decimal num = 10.24M;
string str = num.ToString("c", culture);

如果要控制货币写入的位置(左o右),NumberFormat有两个属性:NumberFormatInfo.CurrencyPositivePattern and NumberFormatInfo.CurrencyNegativePattern

例如在意大利,我们使用 10.00 欧元

您可以将文字 . 括在单引号中:

.ToString("#.## грн'.'")