设置十进制数字的格式

本文关键字:格式 十进制数字 设置 | 更新日期: 2023-09-27 18:15:20

我有一个十进制数,它总是采用US格式,即带小数点。但有些国家用逗号代替小数点。

这将格式化当前区域性中的字符串:

   string.Format("{0:F2} {1}", 100.0018, '€')

结果是:100,00,它有逗号而不是所需的点。

有没有一些函数可以在输入值的小数点上设置格式,在我的例子中是1000018?

我试过这个:

Decimal.TryParse("100.0018", System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.CurrentCulture, out value);

但是结果是10000而不是1000018

设置十进制数字的格式

您可能想要这样的东西:

 string.Format("{0:0.00###############} {1}", 100.0018, '€')

为了使在小数点后至少有两位数字:

100      -> 100.00 €      
100.0018 -> 100.0018 €  

这应该可以做到:

string.Format("{0:#,#.#####}", 100.0018)

您可以使用NumberFormat:

class Program
{
    static void Main(string[] args)
    {
        var brazil = new CultureInfo("pt-BR");
        var usa = new CultureInfo("en-US");
        Console.WriteLine(100.0018m.ToString(brazil.NumberFormat));
        Console.WriteLine(100.0018m.ToString(usa.NumberFormat));
        Console.ReadKey();
    }
}

我的解决方案可能是:string.Format(new CultureInfo("en-US"), "{0:F2} {1}", 100.0018m, '€');结果:100.00€

string.Format("{0:0.00###############} {1}", 100.0018, '€');

您可以通过使用CultureInfo.CreateSpecificCulture和来获取货币