格式化十进制数

时间:2016-10-28 13:30:28

标签: c#

我的十进制数始终为美国格式,即小数点。 但是有些国家用逗号而不是小数点。

这将格式化当前文化中的字符串:

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

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

是否有一些函数可以在这么多小数点上格式化,因为它是输入值,在我的情况下是100,0018?

我试过这个:

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

但结果是10000而不是100,0018

6 个答案:

答案 0 :(得分:1)

你可能想要这样的东西:

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

为了使小数点后的至少两位数:

100      -> 100.00 €      
100.0018 -> 100.0018 €  

答案 1 :(得分:0)

这应该可以解决问题:

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

答案 2 :(得分:0)

您可以使用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();
    }
}

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

您也可以使用CultureInfo.CreateSpecificCulture

获取货币

答案 5 :(得分:-1)

你可以使用replace,如果它是一个字符串,否则使用格式将起作用

s = "100.0018".Replace(".", ",")