.net 使用货币和两位数格式化数字

.net 使用货币和两位数格式化数字,.net,vb.net,currency-formatting,.net,Vb.net,Currency Formatting,我刚刚开始使用面向对象编程。我有这个作业,我必须生成以下输出 1215,51元 我的程序返回1215.50625 这是我的代码,其中a是我正在打印的数字(双精度) txtRe.Text += "Après " + CStr(i) + " ans " + " ==>" + CStr(a) & Environment.NewLine 您可以利用: value.ToString("C2") 或遵循您的代码: txtRe.Text += "Après " + i.ToStr

我刚刚开始使用面向对象编程。我有这个作业,我必须生成以下输出

1215,51元

我的程序返回1215.50625

这是我的代码,其中
a
是我正在打印的数字(双精度)

txtRe.Text += "Après " + CStr(i) + " ans " + " ==>" + CStr(a) & Environment.NewLine
您可以利用:

   value.ToString("C2")
或遵循您的代码:

   txtRe.Text += "Après " + i.ToString("C2") 
甚至:

     Dim value As Double = 12345.6789
     Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))
     Console.WriteLine(value.ToString("C2", CultureInfo.CreateSpecificCulture("fr")))

您似乎在使用美国或英国的当前文化(因此,结果中有一个小数点,而不是逗号,这是法语中使用的)。然而,如果您只是简单地将区域性设置为法语,并尝试使用标准货币格式化程序,它可能会抛出一个欧元符号,这将在您的数值之后。最简单的方法是使用法国文化(以逗号代替小数点),手动输入“$”符号,将双精度值转换为定点表示法

Dim frenchCulture As New CultureInfo("fr-FR")
Dim result As String = "$" & a.ToString("f2", frenchCulture)

您应该使用string.Format,并在需要时更改区域性(Ej:如果您使用法语区域性并且需要$symbol)


非常感谢你的帮助!我用了它,它起了作用。然而,你能解释C2是什么意思吗?货币,小数点后2位。你可以在这里看到完整的解释:。。。而且,既然它帮助了你,如果你认为我活该,请投我一票祝你好运
//without culture
String.Format("Après {0} ans ==> {1:C2} {2}", i, a, Environment.NewLine)

//with culture
CultureInfo culture = new CultureInfo(cultureName);
String.Format(culture ,"Après {0} ans ==> {1:C2} {2}", i, a, Environment.NewLine)