我的十进制数始终为美国格式,即小数点。 但是有些国家用逗号而不是小数点。
这将格式化当前文化中的字符串:
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
答案 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(".", ",")